簡體   English   中英

在Selenium Python中使用多個send_keys()無法正常工作

[英]Using multiple send_keys() in Selenium Python not working

我正在使用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'
  1. 是的,您不能在鏈中使用多個send_keys()方法

  2. 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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM