我在Firefox插件中遇到了我的xpath问题。我有三个文本框,第一个有ID = login,其余有动态生成的ID。第一个在插件中写得很好,//输入[@ id ='login']但是一旦我尝试更高级的东西,它就找不到任何东西。在阅读了大量的论坛帖子之后,我尝试了XPather插件来生成xpath代码,但是长的html / css填充字符串也不起作用。在某些线程中,人们会写“xpath = // ...”,我也尝试过这样做,结果没有结果。
感谢所有可能的帮助!
// M
答案 0 :(得分:3)
我使用的两个工具是Firebug和XPath Checker,两个都是Firefox附加组件。
在Firebug中,选择HTML选项卡,右键单击元素并选择“复制XPath”
对于XPath Checker,右键单击页面中的元素并选择“View XPath”。
您可以通过将结果粘贴到Selenium IDE的目标字段中然后单击“查找”按钮来检查这一点。这告诉了Selenium结果会是什么(比必须反复运行测试快得多!)
我发现你必须“按摩”结果,例如。
如果您转到Google主页并查找左上角的“图片”链接,则XPath Checker会将图片XPath提供为:
// ID( 'gbar')/ X:NOBR / X:一个1
这会引发错误:
找不到[error] locator:// id('gbar')/ x:nobr / x:a 1,错误=错误:无效的xpath 2:// id('gbar ')/ x:nobr / x:a 1
如果删除id,例如
// X:NOBR / X:一个1
您会注意到图像周围有一个绿色框,显示IDE已正确解析它。
答案 1 :(得分:0)
好吧,我发现了一些新信息,它确实可以编写“xpath = /”和XPather自动生成的代码。虽然,xpath很长,并且依赖HTML标签保持不变。
为了在以下三个文本框元素中输入信息,是否有人有更好的想法写入xpath表达式(或css表达式):
TEXTBOX 1
- Firebug:输入类型=“文本”tabindex =“110” NAME = “6011300f91d9f186d1b7ab1a034827da” ID = “输入1”
- 在Selenium中运行xpath,从XPather中检索: 的xpath = / HTML /体[@ ID = '火'] /形式[@ ID = '登录表单'] / DIV / DIV / DIV [@ ID = '容器'] /格[@ ID = '内容'] /格[@ ID = '了contentPadding'] / DIV [1] /字段集[1] /输入[@ ID = 'INPUT1']
TEXTBOX 2
- 输入类型=“密码”tabindex =“110” 名称= “0de4766295b7a965fc4969da3df6824ba”
- 的xpath = / HTML /体[@ ID = '火'] /形式[@ ID = '登录表单'] / DIV / DIV / DIV [@ ID = '容器'] /格[@ ID = '内容' ] /格[@ ID = '了contentPadding'] / DIV [1] /字段集[2] /输入
TEXTBOX 3
- 输入类型=“密码”tabindex =“110”class =“last”name =“6c4e0fcde65e258c3dc7c508a1cc666a”
- 的xpath = / HTML /体[@ ID = '火'] /形式[@ ID = '登录表单'] / DIV / DIV / DIV [@ ID = '容器'] /格[@ ID = '内容' ] /格[@ ID = '了contentPadding'] / DIV [1] /字段集[3] /输入
//中号