簡體   English   中英

在Mac上使用Selenium WebDriver在Firefox中打開新標簽頁

[英]Open new tab in Firefox using Selenium WebDriver on Mac

我剛剛安裝了Selenium Web Driver並進行了嘗試。 效果很好。 我的用例可以描述如下:

  1. 在具有偽X服務器(Xvfb)的服務器上啟動Firefox
  2. 新的Driver.Firefox()對象
  3. 打開10個標簽並在每個標簽中加載網頁
  4. 從所有加載的頁面檢索html

唯一不起作用的步驟是步驟3。我無法找到如何打開新標簽頁。 我在SO上找到了這一點: 如何使用帶有Java的Selenium WebDriver打開新選項卡? 但是,我在Mac上進行了本地測試(即顯示可見)以進行調試,並且發現Firefox瀏覽器(在創建驅動程序對象時打開)在按SO線程中的說明進行操作時未打開任何選項卡。 所以我在這里嘗試了這個:

driver = webdriver.Firefox()
driver.get("https://stackoverflow.com/")
body = driver.find_element_by_tag_name("body")
body.send_keys(Keys.CONTROL + 't')

正如我所說,這對我不起作用。 那么,還有什么可能打開標簽頁呢? 我使用Selenium 2.39(點安裝Selenium)和Python 2.7。

在OSX上打開新選項卡的組合鍵是Command + T,因此您應該使用

body.send_keys(Keys.COMMAND + 't') 

通過操作鏈接將其發送到瀏覽器可能更正確,因為您實際上沒有在鍵入文本。 這也使您的代碼更易讀imo

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

# before correction from  DMfll:
# ActionChains(driver).send_keys(Keys.COMMAND, "t").perform()

# correct method
ActionChains(driver).key_down(Keys.COMMAND).send_keys("t").key_up(Keys.COMMAND)‌​‌​.perform()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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