我正在尝试使用selenium填写表单,在该表单中输入邮政编码,然后出现一个下拉列表,并显示该邮政编码中的所有地址。我正在从电子表格中获取数据。当我将地址分割为[0]的房屋名称或编号时,我想使用它从下拉列表中选择正确的地址。下拉列表列出了完整的地址,我无法搜索整个地址,因为电子表格中的地址可能会略有不同,即可能缺少城镇。

我如何通过匹配房屋名称号码进行选择?

HNUM = sheet['B1']
HNUM = HNUM.value
HNUM = HNUM.split()
HNUM = HNUM[0]

dropdown = browser.find_element_by_id('confirmAddressLookup')
housenumElem = Select(dropdown)
housenumElem.select_by_value(HNUM)


上面的代码不起作用,我想我需要以某种方式部分匹配或提取地址,将它们拆分,然后循环遍历直到匹配?
从网站代码:

选择你的地址

西海岸约克郡哈利法克斯,希腊罗克戴尔路长磨坊HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 16路HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 24路HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 26路HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 59 HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 65路HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 69路HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 77路HX4 8AL


西约克郡HALIFAX,GREETLAND,ROCHDALE ROAD 83


我想我需要遍历每个值并在此示例中搜索门牌号“ 24”,但我不知道如何实现它。

最佳答案

您可以考虑使用XPath options运算符直接定位selectcontains()列表,而不是对其进行迭代。

value = driver.find_element_by_xpath("//option[contains(text(),'24')]").get_attribute("value")
housenumElem.select_by_value(value)


更多信息:XPath Operators & Functions

关于python - 如何使用 Selenium 开始匹配字符串在下拉列表中选择项目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57112403/

10-11 05:49