[在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)
要在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 v3.5.3应该可以解决此问题。