Webdriver (Python、Chrome、Firefox 用) でテキスト フィルターをテストしたい。Web ページには、名前のリストと入力フィールドがあります。ユーザーがテキストを入力すると、名前のリストがフィルタリングされ、入力したテキストを含まない名前は非表示になります。ユーザーが Enter/Return を押すと、最も一致する名前が別の入力フィールドにコピーされます。まず、テキストを入力します (XPath を使用する必要があります)。
textbox = browser.find_element_by_xpath(pathToInputField)
textbox.send_keys(text)
次に、リストがチェックされます (少し簡略化されています)。
for name in names:
xpath = "//div[contains(text(), '{0}')]".format(name)
elmIsDisplayed = browser.find_element_by_xpath(xpath).is_displayed()
if (text in name):
self.assertTrue(elmIsDisplayed)
else:
self.assertFalse(elmIsDisplayed)
この時点までは正常に動作します。その後、Enter/Return キーを押してみます。
textbox.send_keys(Keys.RETURN)
ただし、入力フィールド (textbox または find_element_by_xpath によってアクセスされる) はキーを取得しません (Return も他の文字もありません)。を外すと
find_element_by_xpath(xpath)
名前のチェックでは、正しい名前がコピーされ、すべてが機能します。そのため、別の要素の xpath 検索が 2 番目の send_keys() を妨げているようです。ここで詳細を見逃していますか、それともバグですか?