Selenium Xpath问题在特定位置验证特定图像 - Internet Explorer 9(IE9)

时间:2012-03-23 20:25:44

标签: c# selenium nunit selenium-rc selenium-webdriver

我是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"));

2 个答案:

答案 0 :(得分:1)

最佳猜测:IE正在将SRC=属性规范化为图像的完全限定网址。尝试将img[src="...']替换为img[contains(@src, '...'],这应该与相对或绝对网址一样好。

答案 1 :(得分:0)

罗斯帕特森说的话。

此外,XPath路径可能是错误的 - 对于这样的xpath表达式,任何单个拼写错误或结构中的更改都可能是致命的。试试吧

//img[contains(@src,'images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg')]

搜索包含给定src的任何图像。如果你在页面上有更多这些图像,这不是一个选项(或者它必须进行更多修改),但如果只有这一个,它就会找到它。