如何在python中获取selenium中所有蓝色网页元素的文本

tuwxkamq  于 2023-01-27  发布在  Python
关注(0)|答案(2)|浏览(184)

我想有文字的所有元素是蓝色的颜色从一个网页使用 selenium 在python。
但是我无法找到相应属性的正确xpath。下面是我的代码,有人能告诉我我在这里犯了什么错误吗:-

import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
import time
import gdown

service = webdriver.chrome.service.Service('./chromedriver')
service.start()
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options = options.to_capabilities()
driver = webdriver.Remote(service.service_url, options)
links = ["https://www.insightsonindia.com/2023/01/26/mission-2023-secure-daily-upsc-mains-answer-writing-practice-26-january-2023/"]
for link in links:
    print(link)
    driver.get(link)
    elems = driver.find_elements_by_xpath("//strong[style*='color:#0000ff']")
    for elem in elems:
        print(elem.text)
yhxst69z

yhxst69z1#

颜色是span的属性,而不是strong的属性,因此XPATH应如下所示:

//span[contains(@style,'color: #0000ff')]

或者使用*,但不要那么具体,而是查找所有内容:

//*[contains(@style,'color: #0000ff')]

在较新版本的Selenium中,避免使用find_element_by_*,因为在最新版本中已弃用:

from selenium.webdriver.common.by import By
...
driver.find_elements(By.XPATH, "//span[contains(@style,'color: #0000ff')]")
jutyujz0

jutyujz02#

你的xpath请求缺少一个空格,他应该是这样的:
//span[@style ='颜色:#0000ff;']

相关问题