[英]Selenium: Open Link in Same Tab
我正在通過 Selenium webdriver 單擊鏈接,該鏈接會打開一個新窗口 - 我想強制鏈接在同一窗口(和同一選項卡)中打開,這可能嗎?
大多數情況下,這不僅發生在特定鏈接上。
謝謝
在單擊鏈接之前,將鏈接的目標屬性更新為自身,然后單擊它。
要更新屬性,請參閱此鏈接。
查看 HTML 代碼是否如下所示,鏈接將根據瀏覽器設置在不同的選項卡/窗口中打開。
<a href = "#" target = "_blank">
當通過 Selenium Webdriver 啟動Firefox
瀏覽器時,它默認啟動的默認配置文件會啟用此選項。 您可以通過禁用此選項來創建新的 firefox 配置文件。 在這種情況下,鏈接將在同一個 Firefox 窗口中打開。
在Chrome
驅動程序中,新鏈接會在同一窗口中打開。
您可以強制 selenium webdriver 在同一窗口中打開鏈接,但在同一選項卡中打開鏈接我認為您不能直接強制它而不注入一些Javascript
。 使用Javascript
,您可以更新屬性target
以完成您的要求。
如果你想注入 Javascript,你可以使用Selenium Webdriver API
中的JavaScriptExecutor
。
((JavaScriptExecutor)driver).executeScript("document.getElementById('ID').setAttribute('target', 'self');")
@driver.execute_script("document.querySelector('your_css_element')[#{index}].setAttribute('target','_blank')")
your_list_of_elements.each_with_index do |elem, index|
@driver.execute_script("document.querySelectorAll('your_css_element')[#{index}].setAttribute('target','_blank')")
end
(注意:以上是一個 ruby 片段,在你喜歡的語言中應用相同的片段。)
WebDriverManager.firefoxdriver().setup();
FirefoxOptions options = new FirefoxOptions();
options.addPreference("browser.link.open_newwindow", 1);
driver = new FirefoxDriver(options);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.