Webdriver无法找到元素

时间:2013-08-04 18:59:15

标签: selenium webdriver

我无法在Selenium中找到元素(下面带有id),即使它在成功点击上一页的“搜索”按钮(使用Selenium)后在html源页面中可见,如下所示:

String url="https://sjobs.brassring.com/1033/ASP/TG/cim_advsearch.asp?partnerid=25314&siteid=5290";
driver.get(url);
if(driver.findElements(By.id("submit1")).size() != 0)
    driver.findElement(By.id("submit1")).click(); // clicking on 'Search' button
if(driver.findElements(By.id("ctl00_MainContent_GridFormatter_YUIGrid")).size() != 0)      
    System.out.println("FOUND!");

String pageSource= driver.getPageSource();

“找到”!从未呈现过,pageSource也不包含具有上述id的元素。我正在使用Selenium 2.3.3并使用最新版本的IE,Chrome和Firefox webdrivers进行测试。有人可以帮忙吗?谢谢。

目标网页底部约1/3的内容如下(第三行是ID的位置):

<div id="ctl00_MainContent_GridFormatter_datatable" class="datatable">
<div id="THeadersDiv" style="display:none;">
<table id="ctl00_MainContent_GridFormatter_YUIGrid" class="basicGrid" border="0"> <!-- this is the element in question -->

1 个答案:

答案 0 :(得分:0)

我想我明白了。我相信驱动程序找不到元素,因为有两个元素都具有相同的ID。 (这是可怕的网络代码)。我查看了其余的代码,看起来这两个元素也共享同一个类,并且是该类中唯一的两个元素。

因此,我相信做By.className(".basicGrid") should work