我正在尝试使用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)
你怎么做这样的事情
driver = webdriver.Firefox() #First FF window second_driver = webdriver.Firefox() #The new window you wanted to open
根据要与之交互的窗口,相应地发送命令
print driver.title #to interact with the first driver print second_driver.title #to interact with the second driver
对于所有失望的选民:
OP要求输入“ it is only important that a second instance of the browser is opened.”。这个答案并不包含每个用例的所有可能需求。以下其他答案可能适合您的特定需求。
it is only important that a second instance of the browser is opened.