【问题标题】:Is it possible to use Selenium to interact with a webpage accessed with requests?是否可以使用 Selenium 与通过请求访问的网页进行交互?
【发布时间】:2020-12-07 20:14:53
【问题描述】:

我正在使用请求访问网页。

header = {
    'Access-Control-Allow-Origin': '*',
    'Access-Control-Allow-Methods': 'GET',
    'Access-Control-Allow-Headers': 'Content-Type',
    'Access-Control-Max-Age': '3600',
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'
    }

page = requests.get("https://example.com/",header) 

我想使用 Selenium 来点击一个元素,而不用重新连接到使用 Selenium 的页面。

虽然我知道这不会那么简单,但我想象过这样的事情:

page.find_element_by_xpath("/html/body/div/p[2]/a").click()

如果可能的话,提前感谢!

【问题讨论】:

    标签: python selenium python-requests


    【解决方案1】:

    不,这是不可能的。

    Selenium 驱动网络浏览器,这意味着网络浏览器需要下载整个页面(包括图像、css、脚本等)、构建到 DOM、执行 javascript、构建表示类似于用户可能看到的页面。然后,Selenium 查询浏览器为您检索信息。

    python 请求只是下载一个文件,而不是整个网页。并且请求不会执行嵌入的 javascript,也不会构建 DOM。

    (您可以使用 BeautifulSoup 解析 python-requests 返回的 HTML,这可能对您有所帮助,但结果更像是读取 XML 文件,而不是点击网页。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      相关资源
      最近更新 更多