我在使用 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.