我正在尝试使用 selenium for python 在浏览器中打开一个新选项卡或一个新窗口。如果打开新选项卡或新窗口并不重要,重要的是打开浏览器的第二个实例。
我已经尝试了几种不同的方法,但都没有成功。
切换到一个不存在的窗口,希望它会在找不到所述窗口时打开一个新窗口:
driver.switch_to_window(None)
遍历打开的窗口(虽然目前只有一个)
for handle in driver.window_handles: driver.switch_to_window(handle)
试图模拟键盘按键
from selenium.webdriver.common.keys import Keys driver.send_keys(Keys.CONTROL + 'T')
特别是这个问题是似乎不可能将密钥直接发送到浏览器,只能发送到这样的特定元素:
driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')
然而,当这样的命令被发送到一个元素时,它似乎什么都不做。我试图找到页面上最顶层的 HTML 元素并将密钥发送到该元素,但再次遇到了失败:
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')
我在网上找到的另一个版本,无法验证其有效性或缺乏,因为我不确定需要导入的类/模块
act = ActionChains(driver)
act.key_down(browserKeys.CONTROL)
act.click("").perform()
act.key_up(browserKeys.CONTROL)
具有不同语法的非常相似的东西(我不确定其中一个或两个是否是正确的语法)
actions.key_down(Keys.CONTROL)
element.send_keys('t')
actions.key_up(Keys.CONTROL)