【问题标题】:Copying xpath element is not working on Python复制 xpath 元素不适用于 Python
【发布时间】:2021-07-06 14:45:13
【问题描述】:

我尝试了一些访问 twitter 的 python 代码 > 复制“Happening now”文本。但它没有用。

import webbrowser

print("Visiting Twitter.com...")
webbrowser.get('C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s').open_new('https://twitter.com')
content = webbrowser.find_element_by_xpath('//*[@id="react-root"]/div/div/div/main/div/div/div/div[1]/div[2]/div[1]/span').text

错误: 回溯(最近一次通话最后): 文件“C:/Users/Admin/PycharmProjects/pythonProject/main.py”,第 5 行,在 content = webbrowser.find_element_by_xpath('//*[@id="react-root"]/div/div/div/main/div/div/div/div[1]/div[2]/div[1]/跨度').text AttributeError: 模块 'webbrowser' 没有属性 'find_element_by_xpath'

【问题讨论】:

  • 您遇到的错误是什么?你能分享错误输出吗
  • @burakhan-aksoy 我也更新了错误。请重新检查。
  • @silva2021 我的回答解决了问题吗?

标签: javascript python html selenium


【解决方案1】:

您没有初始化浏览器!
您必须先执行driver = new ChromeDriver(); 之类的操作。
此外,您应该在从元素中读取文本之前添加一些等待条件,例如 wait.until(ExpectedConditions.visibilityOfElementLocated(element));
我提供的代码在Java 中,但在Python 中非常相似

【讨论】:

    【解决方案2】:

    当我查看 webbrowser.py 文件中的源代码时,我看不到任何与 'find_element_by_xpath' 属性相关的内容,因此出现此错误。

    Traceback (most recent call last):
      File "/Users/burakhanaksoy/Desktop/untitled folder/main.py", line 5, in <module>
        content = webbrowser.find_element_by_xpath('//*[@id="react-root"]/div/div/div/main/div/div/div/div[1]/div[2]/div[1]/span').text
    AttributeError: module 'webbrowser' has no attribute 'find_element_by_xpath'
    

    如果你想使用 xpath,我对你的建议是使用 selenium。而且你应该避免使用 div/div/div 类型的 xpath,因为一旦 twitter 在那里添加另一个 div,你的代码很容易中断。

    如果你想通过 xpath 找到“Happening Now”文本,你应该使用类似//*[contains(text(),'Happening Now')]

    你可以从->https://selenium-python.readthedocs.io/getting-started.html#simple-usage开始

    【讨论】:

      【解决方案3】:

      就我个人而言,我讨厌使用 XPath,因为它令人困惑并且会给我带来很多不必要的错误

      我总是使用 CSS 选择器,因为它更简单、更可靠

      webbrowser.find_element_by_css_selector('put_css_selector_here')
      

      如果你不知道 css 选择器是如何工作的 click this link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        • 1970-01-01
        • 2021-04-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多