【问题标题】:Scraping - How to find tag of a webelement using selenium in pythonScraping - 如何在 python 中使用 selenium 查找 webelement 的标签
【发布时间】:2018-07-21 13:56:09
【问题描述】:

例如,如果我有一个 webelement,我想检查它是否包含 h2 标签。这可能吗?如果是,那么如何

from selenium import webdriver
import re
import pandas as pd
from bs4 import BeautifulSoup
chrome_path = r"C:\Users\ajite\Desktop\web scraping\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get('....')

header = driver.find_element_by_xpath('/html/body/div[5]/div[2]/div/ol/li[1]/div/div/div[1]/h2')

if header.contains('h2'):
    print("successful")
else:
    print("unsuccesful")

header 变量包含 h2 标记,但我不能使用 header.contains,因为它是 web 元素而不是文本

错误

Traceback (most recent call last):
  File "test2.py", line 11, in <module>
    if header.contains('h2'):
AttributeError: 'WebElement' object has no attribute 'contains'

【问题讨论】:

标签: python selenium web-scraping


【解决方案1】:

如果你想检查 webelement 是否包含`标签,你可以使用下面的代码块:

header = driver.find_element_by_xpath('/html/body/div[5]/div[2]/div/ol/li[1]/div/div/div[1]/h2')
if 'h2' in header.tag_name:
    print("successful")
else:
    print("unsuccesful")

【讨论】:

    【解决方案2】:

    您可以使用tag_name 方法获取webelement 的标签名称,如下所示。

    from selenium import webdriver
    chrome_path = r"path"
    driver = webdriver.Chrome(chrome_path)
    driver.get("http://www.google.co.in")
    print ("Launching chrome")
    element = driver.find_element_by_xpath('//*[@title="Search"]')
    print("element.tag_name "+element.tag_name)
    if element.tag_name == "input":
        print("successful")
    else:
        print("unsuccesful")
    driver.quit()
    

    【讨论】:

    • @RatmirAsanov ,它与 python 或 java 无关,它与硒有关。如果 selenium 为 java 提供了一些方法意味着它显然也在 python 中提供。我已更新并验证了我的代码
    猜你喜欢
    • 2020-06-08
    • 2020-02-28
    • 2021-02-09
    • 1970-01-01
    • 2020-08-18
    • 2021-01-25
    • 1970-01-01
    • 2014-11-04
    • 2020-05-24
    相关资源
    最近更新 更多