【发布时间】:2012-08-15 15:03:45
【问题描述】:
我遇到了 Selenium WebDriver 的问题。我尝试单击窗口页面外的链接(您需要向上滚动才能看到它)。我当前的代码是相当标准的:
menuItem = driver.findElement(By.id("MTP"));
menuItem.click();
// I also tried menuItem.sendKeys(Keys.RETURN);
我知道我可以向上滚动,在这种情况下它会起作用。但是,如果您有一长串项目,您不一定知道必须向下滚动多远。
有没有什么方法可以点击页面可见部分不存在的链接(但如果滚动则可见)?
附带说明一下,我使用的是 Firefox,但我也打算使用 IE7/8/9 和 Chrome。
任何帮助将不胜感激。
编辑:恐怕不能给出源代码,因为我工作的公司不允许,但我可以给出我想点击的链接的代码:
<div class="submenu">
<div id="MTP">Link title</div>
</div>
完全相同的代码在链接可见时有效,只有在链接不可见时才有效。
Edit2:实际上,奇怪的是,它没有引发任何异常,只是转到下一条指令。所以基本上,会发生什么:
menuItem = driver.findElement(By.id("MTP")); // no exception
menuItem.click(); // no exception
//... some code ensuring we got to the next page: timeout reached
driver.findElement(By.id("smLH")).click(); // NoSuchElementException, as we're on the wrong page.
【问题讨论】:
-
您使用的是什么版本的 webdriver?我知道这在早期版本中是一个问题,但后来得到了解决。如果不是,请尝试使用 2.25。
-
还需要滚动浏览器的滚动条还是页面列表的自定义滚动条?
-
我已经在使用 2.25 版了。至于滚动条,页面中只有浏览器的滚动。但理想情况下,我不想使用任何滚动条。
-
能否提供一些被测网页的源代码?
-
您遇到异常了吗?可以发一下吗?
标签: java selenium scroll click webdriver