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个元素,它从树中选择另一个元素并停在那里。 不进一步,它说"没有这样的元素例外"。
非常感谢任何帮助。
此致 萨拉
答案 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是否抛出任何异常。