gpt4 book ai didi

python - Selenium - 等待元素出现、可见且可交互

转载 作者:行者123 更新时间:2023-11-30 21:54:25 25 4
gpt4 key购买 nike

我有一个 Selenium 脚本 (Python),单击回复按钮即可显示 anonemail 类。类(class)邮件出现所需的时间各不相同。因此,我必须使用 sleep 直到元素出现。

我想等到类(class)出现而不是使用 sleep 。我听说过 wait 命令,但不知道如何使用它们。

这是我迄今为止所拥有的:

browser.find_element_by_css_selector(".reply-button").click()
sleep(5)
email=browser.find_element_by_css_selector(".anonemail").get_attribute("value")

最佳答案

根据最佳实践:

  • 如果您的用例是验证任何元素的存在,则需要引入 WebDriverWait设置expected_conditionspresence_of_element_located()这是检查页面 DOM 上是否存在元素的期望。这并不一定意味着该元素是可见的。所以有效的代码行将是:

    WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()
  • 如果您的用例是提取任何元素的任何属性,您需要引入 WebDriverWait设置expected_conditionsvisibility_of_element_located(locator)这是检查元素是否存在于页面 DOM 上并且可见的期望。可见性意味着该元素不仅会显示,而且还具有大于 0 的高度和宽度。因此,在您的用例中,有效的代码行将是:

    email = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "element_css"))).get_attribute("value")
  • 如果您的用例是在您需要引发 WebDriverWait 的任何元素上调用 click()设置expected_conditionselement_to_be_clickable()这是检查元素是否可见并启用以便您可以单击它的期望。因此,在您的用例中,有效的代码行将是:

    WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".reply-button"))).click()
<小时/>

引用文献

您可以在以下位置找到一些详细的讨论:

关于python - Selenium - 等待元素出现、可见且可交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59130200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com