如何使用 selenium 选择搜索建议?该网站阻止我点击提交,需要选择

我正在努力让自己更轻松地搜索临时公寓,但是一个包含这些公寓列表的网站要求我在点击提交之前从他们的下拉列表中选择一个建议。无论搜索框中的条目多么完整。

这里的最终希望是,我可以转发到搜索结果,然后从每个列表中提取联系信息。我能够使用 Beautiful soup 和 Requests 从列表中提取我需要的数据,但我必须将该特定列表的 URL 粘贴到我的代码中。我没有做到那么远。如果有人对如何绕过登录页面以访问相关列表有任何建议,请告诉我。

我尝试通过查看成功搜索后的书写方式,将城镇名称和州名称拼接到地址栏中,但这没有用。

这是我的代码:

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support.select import Select



driver = webdriver.Firefox()



webpage = r"https://mein-monteurzimmer.de"

print('Prosim vnesi zeljeno mesto') #Please enter the town to search

searchterm = input()


driver.get(webpage)


sbox = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div/input")

sbox.send_keys(searchterm)


ddown = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div")

ddown.select_by_value(1)


webdriver.wait(2)


#select = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div")


submit = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/button")

submit.click

当我检查搜索框时,在我输入文本之前找不到与建议相关的任何内容。然后我无法单击 HTML 代码,因为这会忽略建议。真令人沮丧。


莫回无
浏览 94回答 1
1回答

呼如林

正如您在输入后所看到的那样,将创建一个 div 列表。现在您需要为这些 div 获取一个有效的定位器。要获取这些创建的 div 的定位器,您需要在调试暂停模式下检查元素(F12--> Source Tab --> F8)。尝试使用下面的代码来选择您键入的第一个匹配地址。sbox = driver.find_element_by_xpath("//input[@placeholder='Adresse, PLZ oder Ort eingeben']")sbox.send_keys(searchterm)addessXpath = "//div[contains(text(),'"+searchterm+"')]"driver.find_element_by_xpath(addessXpath).click()注意:如果有多个匹配地址,将选择第一个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python