Python Selenium操作亚马逊Vendor Central下拉菜单报TimeoutException咨询
Selenium操作亚马逊Vendor Central下拉菜单报错解决方案
场景说明
使用Selenium在亚马逊Vendor Central切换菜单项下载报告时,需要从默认选中Shipped Revenue的下拉列表中选择Shipped COGS选项:
- 下拉项初始状态截图:

- 目标选项截图:

初始代码及报错
最初使用的代码如下:
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) import imaplib import email from email.header import decode_header import re import time driver.get("https://vendorcentral.amazon.de/") wait = WebDriverWait(driver,10) # 输入邮箱 email = wait.until(EC.presence_of_element_located((By.XPATH, "//input[@name='email']"))) email.send_keys("***") # 输入密码 driver.find_element_by_xpath("//input[@name='password']").send_keys("***") driver.get("https://vendorcentral.amazon.de/analytics/dashboard/salesDiagnostic") wait = WebDriverWait(driver, 10) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//strong[text()='Shipped COGS']"))).click()
运行时先报No such element: Unable to locate element错误,调整后报TimeoutException。
问题原因
下拉菜单的选项默认处于隐藏状态,未点击展开下拉框前,目标选项元素不会被渲染为可交互状态,直接定位自然会报错。
正确实现代码
需要先点击展开下拉框,再选择对应选项:
# 点击展开下拉框 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//*[@id='dashboard-filter-viewFilter']"))).click() # 选择下拉列表中的Shipped COGS选项 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//*[@id='dashboard-filter-viewFilter']/div/awsui-button-dropdown/div/div/ul/li[3]"))).click()
内容的提问来源于stack exchange,提问作者SVK KVS
相关产品推荐
相关产品推荐

