python - 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 标签来进行选择来解决这个问题。由于某种原因,原始选择标签不起作用。我的猜测是它仅适用于本机。
解决方案
options
文本包含空格,使用normalize-space
:
driver.find_element_by_xpath("//select[@id='native_dropdown_selected_size_name']/option[normalize-space(text())='12']").click()