如何在Selenium Web Automation(Python)中遍历Web元素以从HTML标签提取文本?

KazutoKiritoKigrigaya

我正在制作一个reddit机器人,该机器人将在注释中查找某些属性,使用硒访问信息网站,并用于driver.find_elements_by...获取这些标签内的值。

现在,它driver.find_elements_by...是不可迭代的,并且<span class="name">Lorem Ipsum</span>我想要获得其中包含多个带有文本的标签。我将其存储为变量,并通过PRAW回复评论。

假设HTML是这样的:

<span class="name">Lorem</span>
<span class="name">Ipsum</span>
<span class="name">Dolor</span>
<span class="name">Sit</span>
<span class="name">Amet</span>

因此,我如何从所有<span class="name">标记中获取文本,当我将其存储为变量并答复时,它将只是将所有文本放在一起而没有空格,还是将其格式化为每个文本之间有一个空格,假设我写:

tags = driver.find_element_by...
comment.reply("Tags: {}".format(tags))

如果仅将所有文本放在一起,该如何格式化它以便有空格?

DebanjanB

要从所有正在使用的Selenium提取文本,例如LoremIpsumDolorSitAmet等,您必须引入WebDriverWait并且可以使用以下定位策略之一<span>visibility_of_all_elements_located()

  • 使用CSS_SELECTORget_attribute("innerHTML")

    print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "span.name")))])
    
  • 使用XPATH文字属性:

    print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//span[@class='name']")))])
    
  • 控制台输出:

    ['Lorem', 'Ipsum', 'Dolor', 'Sit', 'Amet']
    

注意:这是字符串类型的列表,您可以根据需要进行操作。

  • 注意:您必须添加以下导入:

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

其他

链接到有用的文档:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从 Python 中的 Selenium Web 元素中提取内部元素?

如何在Selenium中访问Web元素中的元素?

如何在Selenium Web Driver by.xpath中查找元素

如何在Selenium中单击迭代Web元素列表?

如何在Selenium Web驱动程序中登录

如何在python中使用Selenium Web驱动程序获取文本

如何在python中的Selenium Chrome Web驱动程序中获取状态代码

如何验证Selenium Python中Web元素的文本是否匹配?

如何使用 Selenium 遍历 Web 表?

如何在Python中使用Selenium从具有“ display:none”属性的Web元素中选择任何元素

如何在java中的selenium Web驱动程序中水平滚动动态表

如何在Selenium Web Driver中的类属性中验证图像

如何在python,selenium和chromedriver中使用Brave Web浏览器?

如何在Apache Web服务器上安装Selenium(python)?

如何使用Java Selenium WebDriver通过文本选择Web元素

Selenium 3如何操作Web元素

如何在Selenium WebDriver中从一个类到另一个类调用Web元素

带有 selenium 的 Python:循环遍历列表中的第一个 Web 元素

如何在Selenium Web驱动程序中使用SSL证书?

如何在Brave Web浏览器上运行Selenium测试?

如何在不被阻止的情况下使用Selenium Web驱动程序抓取网站

如何使用 Selenium 和 Python 根据标签名称和属性查找 Web 元素

如何从Selenium Web Driver JAVA中的表中获取元素

如何从在 selenium java 中没有 unic id 或 class 的 web 元素中获取文本

如何在执行Selenium Web驱动程序测试之前自动启动ASP.NET MVC Web应用程序?

如何使用 selenium Web 驱动程序单击元素(Python)

如何通过Selenium / Python选择没有ID的Web元素

如何使用Selenium Webdriver处理从DOM中删除的Web元素?

如何迭代Selenium中Web元素列表上的单击?