Selenium webdriver代码在Firefox中运行,但在IE和Chrome中无法运行

时间:2014-05-04 20:47:17

标签: selenium xpath webdriver

Selenium Gurus,

我是新手并努力使其发挥作用。我有一段代码在Firefox中完美运行;但不适用于IE和Chrome。 这是代码:

    driver.findElement(By.xpath("(//img[contains(@src,'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')])[10]")).click();

    driver.findElement(By.xpath("(//img[contains(@src,'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')])[17]")).click();

    driver.findElement(By.xpath("(//img[contains(@src,'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')])[34]")).click();

    WebElement oWE=driver.findElement(By.xpath("(//img[contains(@src,'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')])[34]"));

    Actions oAction=new Actions(driver);
    oAction.moveToElement(oWE);
    oAction.contextClick(oWE).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();

基本上,代码在登录后所做的是通过扩展树来进行深入研究。 首先它是树中的第10个元素,然后是第17个元素,最后是第34个元素。

这个Xpath代码在Firefox中运行良好,然后单击" +"树中的图标,它不断扩大到儿童水平。与IE和Chrome中相同的代码,对于第10个元素,它从树中选择另一个元素并停在那里。 不进一步,它说"没有这样的元素例外"。

非常感谢任何帮助。

此致 萨拉

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码来解决您的问题:

driver.findElement(By.xpath("(//tr[2]//img[1]")).click();
//above code is to click on root element of tree

driver.findElement(By.xpath("(//tr[4]//img[2]")).click();
//above code is to click on child element of tree

driver.findElement(By.xpath("(//tr[5]//img[3]")).click();
//above code is to click on subchild element of tree
  

以上代码使用链接测试Firefox和Chrome   http://dev.sencha.com/deploy/ext-4.0.1/examples/tree/treegrid.html

答案 1 :(得分:-1)

检查两个浏览器中生成的HTML。对于chrome和firefox,您可以使用开发人员工具检查XPATH。

在调试模式下运行代码,或者在查找元素时查看IE或chrom是否抛出任何异常。