【问题标题】:How to read alert info text from a div node with Python Selenium?如何使用 Python Selenium 从 div 节点读取警报信息文本?
【发布时间】:2021-01-01 21:34:53
【问题描述】:

我正在尝试阅读选择下拉菜单后显示消息的网页。当消息出现时,它具有类

<div class="alert alert-info border-0 rounded-0"> No update currently available </div>

我写了以下代码来读取文本,但总是得到一个异常

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

alert = WebDriverWait(driver, 5).until(EC.alert_is_present)
print(alert.text)

在使用 webdriver 等待时,我收到以下错误

__init__() takes 1 positional argument but 2 were given

我的目标是阅读警报类中的文本并进一步验证它。任何帮助将不胜感激。

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    虽然WebElementclass 属性包含值alert 仍然不是JavaScript 启用Alert,你必须处理将其作为常规 WebElement。

    要打印文本 No update currently available,您可以使用以下任一Locator Strategies

    • 使用css_selectorget_attribute("innerHTML")

      print(driver.find_element_by_css_selector("div.alert.alert-info").get_attribute("innerHTML"))
      
    • 使用xpathtext属性:

      print(driver.find_element_by_xpath("//div[contains(@class, 'alert') and contains(@class, 'alert-info')]").text)
      

    理想情况下,您需要为visibility_of_element_located() 诱导WebDriverWait,您可以使用以下任一Locator Strategies

    • 使用CSS_SELECTORtext属性:

      print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.alert.alert-info"))).text)
      
    • 使用XPATHget_attribute()

      print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@class, 'alert') and contains(@class, 'alert-info')]"))).get_attribute("innerHTML"))
      
    • 注意:您必须添加以下导入:

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      

    您可以在How to retrieve the text of a WebElement using Selenium - Python找到相关讨论


    参考文献

    链接到有用的文档:

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      相关资源
      最近更新 更多