【发布时间】:2017-06-05 17:04:37
【问题描述】:
我应该能够使用代码在 selenium 中为 python 打开一个新选项卡
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://stackoverflow.com/")
body = driver.find_element_by_tag_name("body")
body.send_keys(Keys.COMMAND + 't')
但是没有打开新标签,也没有出现错误消息(http://stackoverflow.com/ 确实加载了)。
请注意,我使用的是Keys.COMMAND + 't',因为我在 OS X 上运行代码。
我不知道是什么导致了这个问题,因为像 one 这样的帖子表明我的代码应该可以工作。
已更新以包含答案
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://stackoverflow.com/")
current_tab = driver.current_window_handle
driver.execute_script('window.open();')
new_tab = [tab for tab in driver.window_handles if tab != current_tab][0]
driver.switch_to.window(new_tab)
driver.get("http://github.com")
inputElement = driver.find_element_by_id("user[login]")
inputElement.send_keys('1')
current_tab = driver.current_window_handle
driver.execute_script('window.open();')
new_tab = [tab for tab in driver.window_handles if tab != current_tab][0]
driver.switch_to.window(new_tab)
driver.get("http://github.com")
inputElement = driver.find_element_by_id("user[email]")
inputElement.send_keys('2')
【问题讨论】:
-
改用
driver.execute_script('window.open();') -
@Andersson 这有效....我不知道为什么。你知道如何切换到新的打开标签。如果我能弄清楚,我会考虑回答的问题。
标签: python macos selenium firefox selenium-webdriver