在下拉列表中识别值时遇到问题(Selenium Python)
我正在使用Selenium(Python)从下拉列表中选择一个值,但我遇到了一些问题 当我使用Selenium IDE时,它将下拉列表标识为按钮,如下所示:在下拉列表中识别值时遇到问题(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_
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")