1

我无法找到带有 Selenium 的元素(下面有 id),即使它在成功单击具有以下 URL 的上一页的“搜索”按钮(使用 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 网络驱动程序进行测试。有人可以帮忙吗?谢谢你。

目标页面底部大约 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 -->
4

1 回答 1

0

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

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

于 2013-08-05T01:50:43.583 回答