【发布时间】:2017-10-27 04:04:49
【问题描述】:
我正在尝试点击网站 https://homely.com.au 上的自动完成搜索栏结果,以便搜索结果
我想单击粘贴城市名称后出现的下拉元素,以便使用完整的城市名称进行搜索并获得结果
这是网站的搜索条形码
<div class="SearchAutoComplete SearchAutoComplete--isDropdown SearchAutoComplete--hasIcon">
<div class="SearchAutoComplete-searchIcon">
<span role="presentation" class="icon-wrapper">
<svg class="icon icon-search">
<use
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-search">
</use>
</svg>
</span>
</div>
<input type="text" class="SearchAutoComplete-input" placeholder="Search by agent name or suburb" value="Aberdare">
<div class="SearchAutoComplete-clear animated fadeIn">
<span role="presentation" class="icon-wrapper">
<svg class="icon icon-close">
<use
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-close">
</use>
</svg>
</span>
</div>
<ul class="SearchAutoComplete-results hide">
<li class="heading">
<span role="presentation" class="icon-wrapper">
<svg class="icon icon-map">
<use
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-map">
</use>
</svg>
</span>
<span class="heading-text">locations</span>
</li>
<li data-field-index="0" data-index="0" class="SearchAutoComplete-item active">
<a>Yabbra, New South Wales</a>
</li>
</ul>
</div>
这里是搜索栏的检查元素和结果,如果有帮助的话
和结果检查元素
这是我的硒代码
driver.get('https://homely.com.au/')
wait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//*[contains(text(), 'Agent Finder')]"))).click()
try:
wait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//*[contains(text(), 'No thanks')]"))).click()
except:
pass
#THE PROBLEM STARTS FROM HERE
wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SearchAutoComplete-input'))).clear()
wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SearchAutoComplete-input'))).send_keys(tiki)
time.sleep(1)
wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SearchAutoComplete-input'))).click()
time.sleep(1)
wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SearchAutoComplete-input'))).click()
time.sleep(1)
wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SearchAutoComplete-input'))).send_keys(Keys.DOWN)
time.sleep(1)
wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.SearchAutoComplete-input'))).send_keys(Keys.ENTER)
time.sleep(1)
try:
wait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//*[contains(text(), 'Start comparing agents')]"))).click()
except:
pass
我正在尝试输入城市名称并单击它(否则搜索将不会显示)然后再次单击该字段按向下箭头,然后按 Enter
我如何点击自动完成搜索栏
然后这个页面带有结果
但问题是我的解决方案不一致,搜索有时有效,有时无效 使用 selenium 有更好的稳健方法吗?
【问题讨论】:
-
那你最后又想达到什么目的,
-
我想单击粘贴城市名称后出现的下拉元素,以便使用完整的城市名称进行搜索并获得结果
标签: javascript jquery python html selenium