2013-10-10 56 views
0

我正在使用selenium webdriver(Java)来自动化我的应用程序。我遇到了一个无法为注销链接创建Xpath的地方.HTML代码同样是 - >无法在selenium webdriver中创建用于注销链接的Xpath

<a id="e-modepanel-logout-anchor" class="s-mode-link" onclick="AAA.DSq.ELU(event, 'e-modepanel-logout', 'EPH');;" style="font-weight:bold;" href="#">Logout </a> 

请有人告诉我一个适当的XPath same.Thanks提前

+0

把反引号标记或4个空格,使HTML可见。 –

+0

感谢提示 –

回答

1

如果你有一个开放的心态,用CSS来代替。

的XPath查找特别是元素,将

By.xpath("//a[@id='e-modepanel-logout-anchor']") 

但CSS这么多simpler, cleaner, and faster

By.cssSelector("a#e-modepanel-logout-anchor") 
+0

感谢Xpath建议。 –

0

如果使用铬或谷歌Chrome浏览器,内置的检查有一个“复制XPath”特征。

我确定其他浏览器也有插件,所以你不需要手工编写它。

+1

但是,这样做会造成不稳定的XPath选择器。如果你自己写,选择器会好得多。 –

+0

从这些附加项复制的Xpath会使脚本硬编码并且始终不可行。特别是在上述情况下 –

+2

@ MightyBeast1989“从这些附加项复制的Xpath会使脚本硬编码”为什么? – Chetan

1

你可以得到所谓FirePath一个Firebug扩展(这是一个Firefox扩展),将允许你点击视觉元素,在其上的XPath将显示...

https://code.google.com/p/firepath/

https://addons.mozilla.org/en-US/firefox/addon/firepath/

此XPath工作对我来说:

//*[@id='e-modepanel-logout-anchor'] 
+0

从这些附加项复制的Xpath会使脚本硬编码并且始终不可行。特别是在上述情况下 –

+2

我不同意,因为它取决于您如何使用插件。如果您需要花费几个小时的时间查看源代码以创建xpath,则可以使用此类工具。你可以随时编辑它们,使它们更稳定。所以无论哪种方式,它仍然有助于加速进程imo。 – CODEBLACK

+0

你有没有尝试过:// * [@ id ='e-modepanel-logout-anchor']? – CODEBLACK