我正在尝试抓取此页面:
http://www.1800contractor.com/d.HI.html
我制作了这个剧本
from selenium import webdriver
URL = "http://www.1800contractor.com/d.GA.html"
zip_codes = ['30324']
driver = webdriver.Firefox()
driver.get(URL)
zip_codes = ['30324']
text_box = driver.find_element_by_xpath('//*[@id="zip"]')
text_box.send_keys(zip_codes[0])
button = driver.find_element_by_xpath('//*[@id="xmdListingsSearchForm"]')
button.click()
基本上我需要在搜索框中输入一个邮政编码:
zip_codes = ['30324']
text_box = driver.find_element_by_xpath('//*[@id="zip"]')
text_box.send_keys(zip_codes[0])
那部分正在发挥作用。
然后点击“开始”按钮:
button = driver.find_element_by_xpath('//*[@id="xmdListingsSearchForm"]')
button.click()
那部分不起作用,这就是我在html上看到的那个按钮:
<input type="image" src="/rfs/servicerequest/images/go_btn_grey_20x20.gif" height="20" width="20" style="position: relative; top: 1px;">
所以我猜问题是我没有获得对实际按钮的引用,而是对按钮图像的引用。
答案 0 :(得分:1)
有一种更简单的解决方法 - 在邮政编码的末尾发送换行符 - 它会自动提交表单:
text_box.send_keys(zip_codes[0] + "\n")
适合我。
如果您坚持单击按钮/&#34;按钮图像&#34;,您可以使用与src
属性值的一部分匹配的以下CSS选择器找到它并尝试保持其可读性:< / p>
driver.find_element_by_css_selector("input[src*=go_btn]").click()