Sendnium send_keys未发送撇号

问题描述 投票:2回答:1

[在Selenium中,我想输入测试字符串hello'world,但是网页的文本框变为helloworld。好像撇号不存在。

我的部分代码:(在python中使用Chrome webdriver)

driver = webdriver.Chrome()
driver.get("https://google.com")
text = "hello'world"
textbox = driver.find_element_by_xpath('//* 
[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input')
for i in text:
    textbox.send_keys(i)
    sleep(0.1)
  • 浏览器屏幕截图:Browser screenshot
python selenium selenium-webdriver webdriverwait sendkeys
1个回答
0
投票

要在Google主页的搜索框中发送字符序列 hello'world,您需要为element_to_be_clickable()引入WebDriverWait,并且可以使用以下命令Locator Strategy

  • 使用CSS_SELECTOR

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    driver.get("https://google.com")
    text = "hello'world"
    textbox = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "q")))
    for i in text:
        textbox.send_keys(i)
    
  • 浏览器快照:

“


更新

以前似乎在调用send_keys()时,非美国键盘设置Unicode字符出现了一些问题。您可以在以下位置找到一些相关的讨论:

此问题已通过提交Fixing encoding of payload passed by hub to a node解决。

使用Selenium v​​3.5.3应该可以解决此问题。


tl;医生

Change your keyboard layout

© www.soinside.com 2019 - 2024. All rights reserved.