当手动打开选项卡时,使用selenium和send_keys打开另一个选项卡不起作用

时间:2016-06-30 12:17:25

标签: python selenium sendkeys

问题:

只需使用以下代码启动.py:driver = webdriver.Chrome()手动打开另一个标签并使用:

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

它不会切换标签。

如果您使用以下方式打开标签页

driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + "t")

问题不存在,但不能解决我的问题。我需要手动打开标签,然后使用selenium切换。

使用send_key时,使用命令选项卡firefox可以正常工作。

有什么建议吗?

示例1:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()

# Open 2 extra tabs
driver.get("http://www.google.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + "t")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + "t")

# Switch tabs
time.sleep(2)
print "Press TAB"
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
time.sleep(2)
print "Press TAB"
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
time.sleep(2)
print "Press TAB"
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

示例2:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.google.com")

raw_input("Open 2 tabs manually")

# Switch_to_window won't help
#firstpage = driver.window_handles[0]
#driver.switch_to_window(firstpage)

time.sleep(2)
print "Press TAB"
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
time.sleep(2)
print "Press TAB"
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
time.sleep(2)
print "Press TAB"
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

示例1工作原理。在示例2中,忽略send_keys。

更新

如果切换到要使用的手柄:

driver.execute_script('alert("Focus window")')
driver.switch_to.alert.accept()

0 个答案:

没有答案