【问题标题】:Selenium Web Scraping find_element_by_xpath always captures session stringSelenium Web Scraping find_element_by_xpath 总是捕获会话字符串
【发布时间】:2021-09-04 15:36:46
【问题描述】:

我正在尝试捕获此网站https://opennem.org.au/ 上显示的值“Sources”。

Selenium 的 find_element_by_css_selector 不适合我,所以我改用 find_element_by_xpath

这是我的代码:

from selenium import webdriver
import time

driver=webdriver.Chrome()
driver.get("https://opennem.org.au/")
time.sleep(5.5)
elem=driver.find_element_by_xpath('//span[1]')

print(elem)

我的问题是我在 find_element_by_xpath 函数中输入的任何有效 xpath 字符串。我总是得到如下所示的结果:

<selenium.webdriver.remote.webelement.WebElement (session="e3bf293f8eed9026b04facd44231dab9", element="d3d5bb79-7799-457e-b044-bd580bbf5a30")>

我无法获得实际值,我不知道为什么这个函数似乎每次都在捕获会话。希望有人能够对此有所了解。

大家干杯。

【问题讨论】:

    标签: python performance selenium testing xpath


    【解决方案1】:

    我在这里看到 2 个问题:

    1. 您使用了错误的定位器。
    2. 您应该从 web 元素中获取文本,而不是打印 web 元素本身。

    试试这个:

    summary_energy = driver.find_element_by_xpath('(//div[@class="summary-row"]//div[@class="summary-col-energy cell-value"]/span)[1]').text
    print(summary_energy)
    

    【讨论】:

    • 这完全适合我!非常感谢@Prophet 的帮助!
    • 太棒了!这是我的荣幸:)
    • 作为快速评论:我必须添加“驱动程序”。在 find_element_by_xpath 之前所以它最终是这样的: summary_energy = driver.find_element_by_xpath('(//div[@class="summary-row"]//div[@class="summary-col-energy cell-value"]/ span)[1]').text print(summary_energy)
    • 啊,当然,谢谢。现在是00:06,我得赶紧去睡觉了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多