在下拉列表中识别值时遇到问题(Selenium Python)

在下拉列表中识别值时遇到问题(Selenium Python),python,selenium,Python,Selenium,我正在使用Selenium(Python)从下拉列表中选择一个值,但我遇到了一些问题 当我使用Selenium IDE时,它将下拉列表标识为按钮,如下所示: driver.find_element_by_xpath("(//button[@type='button'])[2]") 然后,我尝试使用以下命令从列表中选择一个值: Select(driver.find_element_by_xpath("(//button[@type='button'])[2]")).select_

我正在使用Selenium(Python)从下拉列表中选择一个值,但我遇到了一些问题

当我使用Selenium IDE时,它将下拉列表标识为按钮,如下所示:

    driver.find_element_by_xpath("(//button[@type='button'])[2]")
然后,我尝试使用以下命令从列表中选择一个值:

    Select(driver.find_element_by_xpath("(//button[@type='button'])[2]")).select_by_visible_text("Africa/Juba")
这不起作用,因为它说“选择只对元素有效,对按钮无效

当我检查元素时,我看不到任何有用的东西可以用来识别下拉列表(这只是其中的一部分):


Africa/AbidjanAfrica/Accra Africa/Addis_Ababa使用
Xpath
得到的元素是一个
按钮
。不能将
Select
与按钮一起使用。您希望获得
Select
元素。 试试这个:

Select(driver.find_element_by_xpath("//select[@ng-model='newAccount.timeZoneId']")).select_by_visible_text("Africa/Juba")
编辑 您遇到的问题是有道理的。在您共享的
HTML
中,没有包含文本
Africa/Juba
选项
元素。如果您将
Africa/Juba
更改为
Africa/Algier
,它应该可以正常工作。
您在评论中提到了此元素:
Africa/Juba
。您的
HTML
示例中缺少此元素。但是
select
中的
span
不起作用。在处理
选项时,您可以使用
select
类。我尝试运行它,但出现了一个错误,提示:selenium.common.exceptions.ElementNotVisibleException:消息:元素不可见:元素当前不可见,不能进行操作“即使下拉列表已展开,并且该选项在screen@Chris很难说问题出在哪里。这个网站是公开的,我可以试试吗?不幸的是,它还在开发中。如果我要求下拉列表添加一个id,使Selenium更容易识别,会有帮助吗?当它使用XPathI时,它似乎在识别下拉列表时遇到了问题,我怀疑它找不到下拉列表。我想它找不到
非洲/Juba
元素。您可以尝试将其分为两个操作,首先查找
选择
,然后选择
非洲/Juba
,这样您就可以看到这两个操作中的哪一个导致了问题。选择“非洲/Juba”似乎有问题,当我将它们分开时,第一个操作运行良好。它的标识符是:非洲/朱巴
Select(driver.find_element_by_xpath("//select[@ng-model='newAccount.timeZoneId']")).select_by_visible_text("Africa/Juba")