我想关闭所有出现在网页中的广告。广告可以出现在不同的地方,两行或一行。 我已经尝试写driver.findelement(By.xpath("//div[@id='cbb']")).click()
但问题是所有的广告都有关闭按钮相同的代码。 还有另一种方法可以做到吗?删除Selenium webdriver中的所有广告
-2
A
回答
1
选项#1
我建议使用JavascriptExecutor。基本上你可以(在你的情况下,广告的HTML)添加style='visibility: hidden;'
到HTML块:
public void hideElement(String xpath)
{
WebElement element = driver.findElement(By.xpath(xpath));
((JavascriptExecutor)driver).executeScript("arguments[0].style.visibility='hidden'", element);
}
隐藏多个元素,你需要拿出JS功能,将隐藏的元素,然后通过它为字符串到executeScript()
public void hideElements()
{
String jscode = "var elements = document.getElementsByClassName('className');
for (var i = 0; i < elements.length; i++){
elements[i].style.display = 'none';
};";
// escaping single/double quotes/tabs/line breaks/so on
jscode = escapeJS(jscode);
((JavascriptExecutor)driver).executeScript(jscode);
}
辅助功能(需要此导入:org.apache.commons.lang3.StringEscapeUtils;
- 你可以从这个here库):
/**
* Escapes JS.
*/
public static String escapeJS(String value) {
return StringEscapeUtils.escapeEcmaScript(value);
}
注意,确保添加必要超时等待页面上试图掩盖他们之前加载的所有广告
选项#2 - 有点铁杆,如果你没有的jQuery您的网页
上如果您还没有jQuery的 - 你可以把它添加到DOM(这将需要一些Java代码添加),然后使用它的方法来隐藏我张贴以上
- Java代码中的元素
如果你有jQuery加载你的页面 - 只需搜索jQuery代码来隐藏页面上的HTML(替代上面发布的vanilla JS),并将这些代码添加到Java函数中。
0
相关问题
- 1. Selenium Webdriver:删除所有域上的Cookies
- 2. 无法删除Selenium webdriver中当前域的所有cookie
- 3. Selenium Webdriver的范围报告
- 4. 在junit selenium webdriver中的报告
- 5. Facebook广告API的Python - 如何删除
- 6. 删除广告或隐藏的AdView
- 7. 如何从ArrayList Selenium WebDriver JAVA中删除重复的WebElement?
- 8. 立即删除AdMob横幅广告?
- 9. AdMob Intersitial广告删除延迟
- 10. MoPub SDK:如何删除视频广告?
- 11. 我可以删除AdMob广告:testDevices
- 12. 在WebDriver中加载页面之前删除部分HTML - Selenium&Python
- 13. 如何从搜索引擎中删除广告网址/广告搜索网址
- 14. 更新现有广告组中的广告素材
- 15. Selenium Webdriver警告 - 无效令牌“屏幕”
- 16. 的PhoneGap构建:AdMob广告(删除与正统剧广告测试Ad)
- 17. 的webdriver - 点击并删除所有持续显示元素
- 18. 应用程序购买中的“删除广告”是否应该删除奖励广告以及横幅和插页式广告?
- 19. 试图通过Chrome扩展程序删除Gmail中的广告
- 20. 是否可以从我的webview中删除广告?
- 21. 无法使用Eloqua中的Postman删除多个广告系列
- 22. 从我的iPhone应用程序中删除广告
- 23. 运行Selenium Webdriver时,URL地址是删除线
- 24. 在selenium webdriver中的Java类
- 25. selenium webdriver中的IE问题?
- 26. 检索帐户中所有有效广告的Facebook Insights?
- 27. Selenium webdriver:如何找到元素的所有属性?
- 28. 如何使用Java获得Selenium WebDriver的所有跨度值?
- 29. 销毁所AdMob广告Libgdx
- 30. 如何在Selenuim webdriver(java)中处理意外的iframe广告?
你在做什么?你使用Selenium进行网页抓取吗?你能在浏览器中安装一个adblocker吗? – Robert
我在我的普通Chrome上安装了adblock。在打开的新页面中不包含我的任何扩展。如果我有adblocker,我不会问 – ctina