【问题标题】:Selenium Python - Wait for Element to load and click on itSelenium Python - 等待元素加载并单击它
【发布时间】:2020-06-22 20:18:24
【问题描述】:

我一直在试图弄清楚如何等待一个元素被加载,然后在 python 中执行 click 函数。

我说的网站是:https://tempail.com/

收到电子邮件后,我希望脚本点击它,然后执行进一步的任务。

我尝试通过“尝试/排除功能”解决此问题,但我总是收到错误消息。

网站来源: https://i.imgur.com/xMrJg5J.png

问题在于该站点使用了我无法在find_element_by 函数中使用的生成 ID。

这是我迄今为止尝试过的: https://i.imgur.com/zxGMVpf.png

通过 try,我希望脚本等到站点收到邮件。一旦邮件在收件箱中,它应该单击链接/邮件并打开它。

除此之外,我查找了更多解决方案,但没有任何帮助,但使用此代码时,我总是收到以下错误:

Message: no such element: Unable to locate element: {"method":"css selector","selector":".epostalar ul li.mail a"}

而且它甚至不等待邮件。

【问题讨论】:

  • 您想点击哪个链接? TEMPAIL

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

一旦您收到一封电子邮件,要在其上调用 click(),您必须诱导 WebDriverWait 以使 元素可点击,您可以使用以下Locator Strategies:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.mailler li.mail a"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='mailler']//li[contains(@class, 'mail')]//a"))).click()
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    相关资源
    最近更新 更多