问题:
只需使用以下代码启动.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()