【发布时间】:2019-05-05 18:17:12
【问题描述】:
我正在尝试填写自动完成的邮政编码/城镇表格。即使您输入了整个邮政编码/城镇,您仍然必须验证自动完成搜索(就在输入下方)。我不会为每次尝试都输入整个错误消息,否则我的帖子会太长(我为每个尝试输入一个数字尝试和 --> 显示相应的结果)。
输入:
ville = 31000 Toulouse
geo = driver.find_element_by_id("location_p")
geo.send_keys(ville)
从这里开始问题: 这是制作 pbs 的线路:
<li data-region="16" data-dpt-code="31" class="selected">
<span class="city" title="Toulouse">Toulouse</span>
<span class="zipcode">31000</span>
</li>
1.
validate = driver.find_element_by_xpath("//li[@class='selected'][contains(.,'data-dpt-code')]")
validate.click()
--> 无法定位元素
2.
validate = driver.find_element_by_css_selector("li.selected")
validate.click()
--> <exception str() failed>
但是
validate = driver.find_element_by_css_selector("li.selected")
assertTrue(validate_is_displayed() and validate_is_enabled())
validate.click()
-> 无法定位元素
3。 从这个:How to handle autocomplete list in webdriver?,我试过了:
geo.send_keys(Keys.TAB)
geo.send_keys(Keys.TAB)
geo.send_keys(Keys.DOWN)
-> 没有错误,但邮政编码/城镇未验证
4.来自Selenium Python - select from autosuggest dropdown,尝试过
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@class='selected']/span[@class='city][contains(.,'Toulouse')]"
-> 同上 3
5.来自Selenium in Python How use a If - else code if an element is not present,我试过了:
elem = driver.find_element_by_xpath('//*[@class="selected"][contains(.,"data-dpt-code")]')
valid = driver.find_element_by_xpath('//span[@class="city"][contains(.,"Toulouse")]')
if valid.is_displayed():
elem.click()
->selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (309.5, 9.75). Other element would receive the click: <section class="content-center clearfix"></section>
我需要你们的帮助!!提前感谢
【问题讨论】:
-
您尝试
send_keys(Keys.RETURN)确认自动建议了吗? -
<li data-region="16" data-dpt-code="31" ...看起来很动态。用更多的 outerHTML 更新问题