Selenium Webdriver找不到元素

Selenium Webdriver找不到元素,selenium,webdriver,Selenium,Webdriver,在成功单击上一页的“搜索”按钮(使用Selenium)后,我无法找到使用Selenium的元素(id如下),即使该元素在html源页面中可见,该页面的url如下: stringurl=”https://sjobs.brassring.com/1033/ASP/TG/cim_advsearch.asp?partnerid=25314&siteid=5290"; 获取(url); if(driver.findElements(By.id(“submit1”)).size()!=0) driver.f

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

stringurl=”https://sjobs.brassring.com/1033/ASP/TG/cim_advsearch.asp?partnerid=25314&siteid=5290";
获取(url);
if(driver.findElements(By.id(“submit1”)).size()!=0)
driver.findElement(By.id(“submit1”))。单击();//点击“搜索”按钮
if(driver.findElements(By.id(“ctl00\u MainContent\u GridFormatter\u YUIGrid”)).size()!=0)
System.out.println(“FOUND!”);
字符串pageSource=driver.getPageSource();
“FOUND!”从未呈现,pageSource也不包含具有上述id的元素。我正在使用Selenium 2.3.3,并使用最新版本的IE、Chrome和Firefox webdrivers进行测试。有人能帮忙吗?多谢各位

从目标页面底部大约1/3的位置如下(第三行是id的位置):


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


因此,我认为使用.className(“.basicGrid”)执行
By.className应该可以

我试图打开给定的页面,但是没有具有给定ID的元素。您应该修复
By
子句。您必须单击页面底部的“搜索”按钮(“清除”按钮左侧)才能到达与您讨论的页面。我只是通过编程方式点击“搜索”按钮进行编辑,以使事情更清楚。谢谢。如果有两个元素具有相同的id,
driver.findElements(By.id(“ctl00\u MainContent\u GridFormatter\u YUIGrid”)).size()
是否还应该有两个
FOUND
在这种情况下仍应打印。这是我的想法,但因为ID应该是唯一的,这可能会导致一些奇怪的情况…也就是说,找不到任何ID。等等,我在页面上搜索了ID(ctl00\u MainContent\u GridFormatter\u YUIGrid),只找到了1个。你确定你有两个相同id的元素吗?嗯…你说得对。我回到了原版,进行了研究,效果很好。不过我还是建议你用类名试试。那么你是说“find!”是在你跑步的时候呈现的吗?谢谢