单击带图像的按钮

时间:2016-05-01 13:16:03

标签: python html selenium web-scraping web-crawler

我正在尝试抓取此页面:

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;">

所以我猜问题是我没有获得对实际按钮的引用,而是对按钮图像的引用。

1 个答案:

答案 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()