Вы наверняка имели в виду `login.send_keys (my_str) :) Конечно, я использую переменную здесь," 12345 "был просто примером

кой-то причине я не могу написать символ «3» в элемент ввода на странице.

Этот код:

    chrome_options = Options()
    chrome_options.add_argument('--dns-prefetch-disable')
    chrome_options.add_argument('--no-proxy-server')
    chromeDriverPath = self.getChromeDriverPath()
    os.environ["webdriver.chrome.driver"] = chromeDriverPath
    self.driver = webdriver.Chrome(chromeDriverPath, chrome_options=chrome_options)

    self.driver.get(self.loginUrl)
    login = self.driver.find_element_by_id('login_credit')
    login.send_keys("12345")

приводит к записи "1245" во входе в систему ... Может кто-нибудь помочь, пожалуйста? Я использую Python 2.7, последний Chrome и последний Chromeriver

РЕДАКТИРОВАТЬ:

login.send_keys("3")

login.send_keys("\3")

тоже не работает

login.send_keys("[email protected]#$%^&*()")

- в строке отсутствовала только «3» ...

что сработало

login.send_keys(Keys.NUMPAD3)

как предложил Андерссон ниже, но это не решение.

Я попробовал это в окне поиска Google, и я испытал то же самое поведение.

 Andersson12 нояб. 2017 г., 12:38
Пытатьсяlogin.send_keys("1", "2", "3", "4", "5")
 Charlestone13 нояб. 2017 г., 08:04
вау, ключи.NUMPAD3 действительно сработали: D. Но я не приму это как ответ - я не хочу разбирать строки и отправлять их char за char, если вы понимаете, о чем я. Проблема возникает во всех ящиках ввода, которые я пробовал (Google и т. Д.)
 yong12 нояб. 2017 г., 17:09
Измените сценарий, чтобы открыть общедоступный веб-сайт, такой как Google, и отправьте ключи 12345 в поле ввода, если 3 по-прежнему отсутствует, проблема наиболее вероятна из chrome и chromedriver. Тогда попробуйте другую версию chrome или chromedriver.
 Andersson12 нояб. 2017 г., 15:47
Как насчетfrom selenium.webdriver.common.keys import Keys login.send_keys(Keys.NUMPAD3)?
 Charlestone12 нояб. 2017 г., 15:37
Нет, «3» по-прежнему не печатается, даже когда я пишу его полностью один

Ответы на вопрос(3)

попробуйте передать строковую переменную вsend_keys и попробуйте, может быть, это работает для вас

my_str = "12345"
login = self.driver.find_element_by_id('login_credit')
login.send_keys(my_str)
 Charlestone13 нояб. 2017 г., 08:05
Вы наверняка имели в виду `login.send_keys (my_str) :) Конечно, я использую переменную здесь," 12345 "был просто примером
Решение Вопроса

Chrome Driver решил эту проблему.

 titusfortner06 дек. 2017 г., 19:50
Это ошибка в предыдущей версии программного обеспечения. Это вполне разумный ответ, чтобы сказать, что они должны обновиться до последней версии программного обеспечения.

send_keys("12345") Вы можете использовать любую из упомянутых ниже альтернатив:

использованиеKeys.NUMPAD3 :

login.send_keys(Keys.NUMPAD3)

использованиеJavascriptExecutor с участиемgetElementById :

self.driver.execute_script("document.getElementById('login_credit').value='12345'")

использованиеJavascriptExecutor с участиемgetElementsById :

self.driver.execute_script("document.getElementsById('login_credit')[0].value='12345'")
 Charlestone13 нояб. 2017 г., 14:29
так должно бытьdocument.getElementById('login_credit').value='12345' или жеdocument.getElementsById('login_credit')[0].value='12345' и да, это тоже работает, спасибо! : D вроде некрасивое решение, хотя

Ваш ответ на вопрос