我无法在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 -->
答案 0 :(得分:0)
我想我明白了。我相信驱动程序找不到元素,因为有两个元素都具有相同的ID。 (这是可怕的网络代码)。我查看了其余的代码,看起来这两个元素也共享同一个类,并且是该类中唯一的两个元素。
因此,我相信做By.className(".basicGrid") should work