Selenium 2 Webdriver(无法通过xpath查找元素)

时间:2011-09-06 20:56:49

标签: java internet-explorer selenium-webdriver

有人可以告诉我我做错了什么吗?我尝试过使用Firebug的长路径xpath,我得到了同样的错误。使用xpath

//span[@onclick=\"mainIframeSrc('l_sams_sched.p_group_schedule')

我能够找到该元素并单击Selenium IDE中的“Schedule Entry”。问题是我尝试在IE中使用webdriver做同样的事情。

HTML片段:

<div class="node">
<img alt="Schedule Entry" src="/csui/leaf.gif">
<span class="node-text" onmouseout="this.className='node-text'" onmouseover="this.className='node-text-over'" onclick="mainIframeSrc('l_sams_sched.p_group_schedule')">Schedule Entry</span>
</div>

Webdriver代码:

driver.findElement(By.xpath("//span[@onclick=\"mainIframeSrc('l_sams_sched.p_group_schedule')\"]")).click();

错误:

  

org.openqa.selenium.NoSuchElementException:无法找到元素   通过xpath使用   “//span[@onclick="mainIframeSrc('l_sams_sched.p_group_schedule') “]”   (7)       系统信息:os.name:'Windows XP',os.arch:'x86',os.version:'5.1',java.version:'1.6.0_19'       驱动程序信息:driver.version:ie         在org.openqa.selenium.ie.ErrorHandler.verifyErrorCode(ErrorHandler.java:36)         在org.openqa.selenium.ie.Finder.handleErrorCode(Finder.java:219)         在org.openqa.selenium.ie.Finder.findElementByXPath(Finder.java:183)         在org.openqa.selenium.By $ 6.findElement(By.java:205)         在org.openqa.selenium.ie.Finder.findElement(Finder.java:207)         在org.openqa.selenium.ie.InternetExplorerDriver.findElement(InternetExplorerDriver.java:322)         在com.eviltester.seleniumtutorials.SAMSLogin.firstPageContainsQAANet(SAMSLogin.java:105)         在com.eviltester.seleniumtutorials.SAMSLogin.main(SAMSLogin.java:22)       测试失败。

2 个答案:

答案 0 :(得分:0)

试试这个,

WebElement element = driver.findElement(By.cssSelector("div.node>span.node-text"));
element.click();

答案 1 :(得分:0)

在您尝试在MSIE中访问的元素之前,您的页面中是否有元素,其id =“tags”?如果是,则必须重命名 - 请参阅http://code.google.com/p/selenium/issues/detail?id=1500以获取更多信息。

啊,还有一个可能的原因是安全设置 - 请参阅http://code.google.com/p/selenium/wiki/InternetExplorerDriver - 查找“必需的配置”。