簡體   English   中英

Selenium:在同一選項卡中打開鏈接

[英]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')")

對於多dom元素

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM