如何使用硒开始选择匹配字符串从下拉列表中选择项目?

时间:2019-07-19 12:20:40

标签: python selenium

我正在尝试使用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 西约克郡哈利法克斯,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号HX4 8AL

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

1 个答案:

答案 0 :(得分:0)

您可以考虑直接使用XPath options运算符

来定位selectcontains()的列表,而不是对其进行迭代。
value = driver.find_element_by_xpath("//option[contains(text(),'24')]").get_attribute("value")
housenumElem.select_by_value(value)

更多信息:XPath Operators & Functions