私はPythonを使用してSelenium webdriverを学習しようとしています。テストケース用コード: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()
「ベルリン」というテキストを入力して最初のステップは問題なく動作します。しかし、2番目のステップが来たら、Keys.RETURN
は入力 "Szczecin"の後に実行されません。
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を使用してみてください(U「\ ue007」)返信の代わりに –
@MarcvT私はsend_keys(u '\ ue007')でも試しましたが、動作は同じです。宛先のヒントとともにリストを展開するだけです(send_keys(Keys.RETURN)の振る舞いは同じです)。私もsend_keys(Keys.ENTER)で試しました – bMh
'Actions'は' Marionette'にまだ実装されていません。 'ActionChains'を使用する必要がある場合は' chromedriver'を試してみましょうか、 'ActionChains'コード行を同様のコード – Andersson