我正在尝试以电子商务商店的形式自动化构建网站的重复过程(我是业余爱好者)。这些重复的步骤肯定会节省我大量的时间。我已经整理了一些步骤,但现在我无法找到某个按钮,我检查浏览器并且可以复制 xpath,但是当我运行代码时它找不到它。我在这里阅读了大约 200 个问题,但仍然找不到对我有帮助的答案。所以如果有人能帮助我,我将不胜感激。
出现的部分错误是这样的。
TimeoutException Traceback(最近一次调用最后一次) 单元格 In[62],第 221 行 第218章 10 220 # 团体“Adicionar Páginas” --> 221 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="app"]/div[1]/div[2]/div/div[1 ]/div[2]/div/div[2]/div/div/a/span'))).click()
超时异常:消息:
HTML 做 botão
<a href="https://admin.shopify.com/store/dc7020-3/pages/new" data-polaris-unstyled="true" class="Polaris-Button_r99lw Polaris-Button--pressable_1q8ey Polaris-Button--variantPrimary_1stsb Polaris-Button--sizeMedium_5f35p Polaris-Button--textAlignCenter_1kere"><span class="">Adicionar página</span></a>
即使我让屏幕已加载,并运行代码只是为了单击,它也找不到它。
我已经尝试过:find_element; element_to_be_clickable;所有元素的存在
我已经尝试过:By.XPATH;通过 ID;通过.CSS_SELECTOR;按名字;等等
我尝试运行的部分代码
# Navigate to the "Pages" tab only the first time
if i == 0:
# Click on the 'Pages' tab
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[normalize-space()='Páginas']"))).click()
# Click on the 'Add Pages' button
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="app"]/div[1]/div[2]/div/div[1]/div[2]/div/div[2]/div/div/a/span'))).click()
这里的 Timeout Exception 错误表示在找到 XPath 指定的元素之前 WebDriverWait 方法已经超时 '//*[@id="app"]/div1/div[2]/div/div1/div[2]/div/div[2]/div/div/a/span'
这意味着10秒后它就不存在了
通过增加超时时间来尝试此操作
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="app"]/div1/div[2]/div/div1/ div[2]/div/div[2]/div/div/a/span'))).click()
尝试使用 while 循环进行 WebDriverWait
loop_wait = WebDriverWait(驱动程序, 20)
而真实:
try:
wbdrvr = loop_wait.until(EC.visibility_of_element_located((By.XPATH,'//*[@id="app"]/div[1]/div[2]/div/div[1]/div[2]/div/div[2]/div/div/a/span')))
break
except TimeoutException:
pass
wbdrvr.click()
查看iframe是否包含xpath
请参阅此处了解有关使用 iframe 查找 xpath 的更多信息