在Java w/Selenium WebDriver中,如何在广告显示时使用JavaScript单击覆盖广告上的链接



我是自动化的新手,我正在尝试使用Java w/Selenium WebDriver自动化一些网站。没有cookie的用户将通过覆盖屏幕的JavaScript呈现插页式广告。广告上有一个"跳过这个广告"的链接来关闭它,我想关闭这个广告,这样我就可以避免让线程休眠20秒,直到广告自己消失。

网址:http://searchsqlserver.com

我似乎无法使用正常的finelement技术访问链接,我一直在尝试使用JavascriptExecutor,但没有运气。

这是我的代码(这不起作用!)来显示我想要做的事情:

if (Common.isElementPresent(By.id("adx_al"), driver)){          
((JavascriptExecutor)driver).executeScript(findElement(By.linkText("Skip this advertisement")).click());
//Thread.sleep(20000);
}

广告在iframe中。你需要

driver.switchTo.frame(driver.findElement(By.id("adx_ldi1_348897")))
...click() // on your advertisement
driver.switchTo().defaultContent()

注意,您可能需要使用框架定位符,可能是为了使其更通用。

最新更新