我正在努力让自己更轻松地搜索临时公寓,但是一个包含这些公寓列表的网站要求我在点击提交之前从他们的下拉列表中选择一个建议。无论搜索框中的条目多么完整。这里的最终希望是,我可以转发到搜索结果,然后从每个列表中提取联系信息。我能够使用 Beautiful soup 和 Requests 从列表中提取我需要的数据,但我必须将该特定列表的 URL 粘贴到我的代码中。我没有做到那么远。如果有人对如何绕过登录页面以访问相关列表有任何建议,请告诉我。我尝试通过查看成功搜索后的书写方式,将城镇名称和州名称拼接到地址栏中,但这没有用。这是我的代码:from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.select import Selectdriver = webdriver.Firefox()webpage = r"https://mein-monteurzimmer.de"print('Prosim vnesi zeljeno mesto') #Please enter the town to searchsearchterm = 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 代码,因为这会忽略建议。真令人沮丧。
1 回答
呼如林
TA贡献1798条经验 获得超3个赞
正如您在输入后所看到的那样,将创建一个 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()
注意:如果有多个匹配地址,将选择第一个。
添加回答
举报
0/150
提交
取消