我想關閉所有出現在網頁中的廣告。廣告可以出現在不同的地方,兩行或一行。 我已經嘗試寫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,從表中刪除
- 3. 無法刪除Selenium webdriver中當前域的所有cookie
- 4. 使用IE11刪除Selenium Webdriver中的cookie
- 5. 刪除RSS源的廣告?
- 6. Selenium Webdriver的範圍報告
- 7. 暫時刪除admob廣告
- 8. 廣告預覽Facebook帳戶中的所有廣告ID
- 9. Selenium webdriver中的佈局差異報告
- 10. 在junit selenium webdriver中的報告
- 11. 刪除廣告控件上的廣告按鈕
- 12. 刪除廣告或隱藏的AdView
- 13. Facebook廣告API的Python - 如何刪除
- 14. 的iOS刪除廣告概念
- 15. 在selenium webdriver中生成報告
- 16. 通過使用Google Adwords編輯器導入來刪除所有現有廣告
- 17. 如何從ArrayList Selenium WebDriver JAVA中刪除重複的WebElement?
- 18. Selenium Webdriver和TestNG的圖形報告
- 19. AdMob Intersitial廣告刪除延遲
- 20. MoPub SDK:如何刪除視頻廣告?
- 21. 我可以刪除AdMob廣告:testDevices
- 22. 如何刪除廣告重定向?
- 23. 用python隱藏/刪除廣告
- 24. 立即刪除AdMob橫幅廣告?
- 25. iPhone + AdMob +刪除廣告視圖
- 26. 我們如何刪除Selenium中的所有域cookie?
- 27. 刪除Webdriver中的cookies
- 28. 如何從搜索引擎中刪除廣告網址/廣告搜索網址
- 29. python中的selenium webdriver
- 30. selenium中的sendKeys()WebDriver
你在做什麼?你使用Selenium進行網頁抓取嗎?你能在瀏覽器中安裝一個adblocker嗎? – Robert
我在我的普通Chrome上安裝了adblock。在打開的新頁面中不包含我的任何擴展。如果我有adblocker,我不會問 – ctina