Reputation: 31
In Selenium I want to input a teststring "hello'world"
, but the webpage's textbox becomes "helloworld"
. As if the apostrophe doesn't exist. Replacing "'"
by chr(39)
or splitsing the string doesn't do the job either.
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)
Upvotes: 3
Views: 1270
Reputation: 31
Solution: Changed from Chromedriver to Firefox using geckodriver. The single and double quote seems to ge glitched in the current version of Chromedriver.
Upvotes: 0
Reputation: 193298
To send the character sequence hello'world within the search box of Google Home Page you need to induce WebDriverWait for the element_to_be_clickable()
and you can use the following Locator Strategy:
Using 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)
Browser Snapshot:
Seems previously there were some issues with the non-US keyboard settings and Unicode characters while invoking send_keys()
. You can find a couple of relevant discussions in:
This issue was solved through the commit Fixing encoding of payload passed by hub to a node.
Using Selenium v3.5.3 should solve this issue.
Upvotes: 2