首页 > 解决方案 > Selenium Python 无法从亚马逊产品详细信息屏幕的下拉列表中选择值

问题描述

我正在尝试为亚马逊产品自动添加到购物车操作,我遇到的一个问题是我无法在 python 中使用 selenium 模拟单击​​下拉菜单。这是我当前的代码(忽略导入):

            select = Select(self.driver.find_element_by_id("native_dropdown_selected_size_name"))
            print("select = ", select)
            for o in select.options:
                if o.text == '12':
                    print("found")
            select.select_by_visible_text("12")

在我的代码中,我试图从菜单下拉菜单中选择尺寸 12 选项。从打印语句中,我可以看出找到了下拉菜单,并且尺寸 12 也在那里,但 select_by_visible_text 似乎不起作用。

我尝试过的另一个选择是:

            self.driver.find_element_by_xpath("//select[@id='native_dropdown_selected_size_name']/option[text()='12']").click()

这似乎也不起作用。

这是我正在试验的产品:https ://www.amazon.com/dp/B07KRY1JPK 。默认情况下有颜色选项,因此问题在于尺寸选择。

任何帮助表示赞赏。提前致谢!

更新:

我可以通过单击 span 标签(选择后的兄弟)和隐藏在 span 下的 a 标签来进行选择来解决这个问题。由于某种原因,原始选择标签不起作用。我的猜测是它仅适用于本机。

标签: pythonselenium

解决方案


options文本包含空格,使用normalize-space

driver.find_element_by_xpath("//select[@id='native_dropdown_selected_size_name']/option[normalize-space(text())='12']").click()

推荐阅读