Я пытаюсь изучить Selenium webdriver с помощью Python. Мой код для тестового примера выглядит следующим образом:send_keys не отправляет ввод после ввода текста
import unittest
#import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
#from selenium.webdriver.common.action_chains import ActionChains
class FindRouteToBerlin(unittest.TestCase):
# Start Firefox
def setUp(self):
self.driver = webdriver.Firefox()
def test_find_route_to_berlin(self):
driver = self.driver
# Open HERE Maps
driver.get('http://wego.here.com')
self.assertIn("HERE WeGo", driver.title)
# Go to Search field and fill with city
search = driver.find_element_by_xpath('//*[@id="searchbar"]/div/div/input')
search.send_keys('Berlin')
search.send_keys(Keys.RETURN)
# Press "Arrow"
arrow = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body/div[1]/div[6]/div/div/div[1]/div[2]/button')))
arrow.click()
# Enter address
address = driver.find_element_by_xpath('//*[@id="itinerary_item_input_0"]')
address.send_keys('Szczecin')
address.send_keys(Keys.RETURN)
"""actions = ActionChains(driver)
actions.move_to_element(address)
actions.send_keys(Keys.RETURN)
actions.perform()"""
#def tearDown(self):
# self.driver.quit()
if __name__ == "__main__":
unittest.main()
Первый шаг с заполнением текста «Берлин» и работает без проблем. Но когда наступает второй шаг, похоже, что Keys.RETURN
не выполняется после ввода «Щецин».
Я пытался решить эту проблему с помощью ActionChains
, но после .perform()
У меня есть ошибка, и я прочитал, что эти проблемы связаны с ошибками в Selenium/Mozilla.
Мой код ActionChains был:
actions = ActionChains(driver)
actions.move_to_element(address)
actions.send_keys(Keys.RETURN)
actions.perform()
Error: Message: POST /session/1caed99c-1577-4f1d-804b-4ee397d8750b/moveto did not match a known command
Любые предложения, как я могу решить эту проблему?
попробуйте использовать send_keys (и '\ ue007') вместо RETURN –
@MarcvT Я тоже пробовал с send_keys (u '\ ue007'), но поведение такое же. Он только расширяет список с подсказками для назначения (с поведением send_keys (Keys.RETURN) одинаково). Я также пытался с send_keys (Keys.ENTER) – bMh
'Действия' по-прежнему не реализованы в' Marionette'. Если вам нужно использовать 'ActionChains', попробуйте' chromedriver' или замените строки кода ActionChains'ом аналогичным кодом – Andersson