我是Selenium的新手,我在Internet Explorer 9(IE9)中遇到了一个测试用例问题。我正在使用NUnit运行测试用例来验证特定位置是否存在特定图像。测试用例在Firefox和Chrome中传递,但在IE9中失败。
我听说IE有Xpath问题,但找不到关于该主题的任何确切信息。有没有办法让这个命令在IE中使用Xpath?有没有更好的方法可以在没有Xpath的情况下运行此验证?适用信息如下。
注意:我也是C#的新手,所以它也可能是一个C#问题。
命令=
Assert.IsTrue(selenium.IsElementPresent("//html/body/form/div[8]/div[3]/div[3]/div[2]/div/div/table/tbody/tr/td/img[@src='images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg']"));
图片的HTML =
<img style="padding-top: 3px; padding-bottom: 0px; background-color: transparent;" src="images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg">
image =
的CSS路径html body.v4master form#aspnetForm div#s4-workspace div#s4-mainarea.s4-pr div#MSO_ContentTable.s4-ca div.s4-ba div.ms-bodyareacell div#ctl00_MSO_ContentDiv table.maintable tbody tr td img
另外,当我删除特定的图像验证部分时,该命令有效并且测试用例在IE9中传递:
Assert.IsTrue(selenium.IsElementPresent("//html/body/form/div[8]/div[3]/div[3]/div[2]/div/div/table/tbody/tr/td/img"));
答案 0 :(得分:1)
最佳猜测:IE正在将SRC=
属性规范化为图像的完全限定网址。尝试将img[src="...']
替换为img[contains(@src, '...']
,这应该与相对或绝对网址一样好。
答案 1 :(得分:0)
罗斯帕特森说的话。
此外,XPath路径可能是错误的 - 对于这样的xpath表达式,任何单个拼写错误或结构中的更改都可能是致命的。试试吧
//img[contains(@src,'images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg')]
搜索包含给定src的任何图像。如果你在页面上有更多这些图像,这不是一个选项(或者它必须进行更多修改),但如果只有这一个,它就会找到它。