我正在使用Splinter和Python来自动化网站。我可以在Selenium中使用send_keys()
方法,但不能一次发送多个密钥,例如browser.driver.find_element_by_name('q').send_keys(Keys.CONTROL + 't')
未发生错误或异常,但代码未按预期工作。
import time
from selenium import webdriver
from splinter import Browser
from selenium.webdriver.common.keys import Keys
executable_path = {'executable_path':'C:/Users/UserName/Downloads/chromedriver_win32/chromedriver.exe'}
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
browser = Browser('chrome', **executable_path, options=options)
browser.visit('https://google.com/')
time.sleep(4)
#This is working
browser.driver.find_element_by_name('q').send_keys('hello world')
#This also works
browser.driver.find_element_by_name('q').send_keys(Keys.ENTER)
#Not working
browser.driver.find_element_by_name('q').send_keys(Keys.CONTROL + 't')
#Not working
browser.driver.find_element_by_name('body').send_keys(Keys.CONTROL + 'w')
我尝试过链接send_keys()
方法,但这似乎也不起作用。
#Not working
browser.driver.find_element_by_name('body').send_keys(Keys.CONTROL).send_keys('t')
此链接方法引发异常,如下所示:
Traceback (most recent call last):
File "C:/Python Automation/Test 1/swap.py", line 18, in <module>
browser.driver.find_element_by_name('q').send_keys(Keys.CONTROL).send_keys('t')
AttributeError: 'NoneType' object has no attribute 'send_keys'
-
是的,您不能在一个链中使用多个
send_keys()
方法 -
chromedriver
目前不支持使用组合键
例如,您可以尝试使用Firefox
而不是Chrome
或以下的解决方法:
driver.execute_script("window.open();")
以打开新选项卡而不是
browser.driver.find_element_by_name('q').send_keys(Keys.CONTROL + 't')
和
driver.close()
关闭标签页而不是
browser.driver.find_element_by_name('body').send_keys(Keys.CONTROL + 'w')