【问题标题】:Selenium with Python, how do I get the page output after running a script?Selenium with Python,运行脚本后如何获取页面输出?
【发布时间】:2011-04-04 00:41:36
【问题描述】:

我不知道如何找到这些信息,到目前为止,我已经找到了一些关于将 Python 与 selenium 结合使用的教程,但没有一个涉及到这一点。我能够通过 python 运行一些基本的测试脚本自动化 selenium,但它只显示浏览器窗口几秒钟然后关闭它。我需要将浏览器输出转换为字符串/变量(理想情况下)或至少将其保存到文件中,以便 python 可以做其他事情它(解析它等)..如果有人能指出我如何做到这一点的资源,我将不胜感激。谢谢

【问题讨论】:

  • 经过更多搜索后,我开始拼凑一种使用 firefox 配置文件的方法,您必须创建一个 firefox 配置文件,然后在该配置文件下启动 selenium,您可以使用一个 firefox 插件自动将所有页面保存到指定目录,完成后我将在此处发布一个简短的教程以供参考,因为有关此主题的信息似乎相当稀疏​​
  • ret = sel.get_string("getBodyText", [])

标签: python selenium browser-automation


【解决方案1】:

好的,这就是我最终这样做的方式,对于将来需要它的任何人..

你必须使用 firefox 才能工作。

1) 创建一个新的 firefox 配置文件(不是必需的,但很理想,以便将其与正常的 firefox 使用区分开来),关于如何在 google 上执行此操作的信息很多,这取决于您的操作系统如何执行此操作

2) 获取 firefox 插件:https://addons.mozilla.org/en-US/firefox/addon/2704/(这会自动保存给定域名的所有页面),您需要对其进行配置以保存您打算自动保存的任何域。

3) 然后启动 selenium 服务器以使用您创建的配置文件(下面是 linux 的示例)

cd /root/Downloads/selenium-remote-control-1.0.3/selenium-server-1.0.3 
java -jar selenium-server.jar -firefoxProfileTemplate /path_to_your_firefox_profile/

就是这样,它现在会在 selenium 访问它们时保存给定域名的所有页面,selenium 也会创建一堆垃圾页面,因此您可以通过简单的正则表达式解析删除这些页面,这取决于您,从那里如何操作保存的页面

【讨论】:

    【解决方案2】:

    在 Java 中有一个 Selenium.getHtmlSource() 方法,很可能它在 Python 中也可用。它将当前页面的来源作为字符串返回,所以你可以用它做任何你想做的事情

    【讨论】:

    • 是的,我在 selenium rc python 文档中找到了这个信息,我忘了看那里,因为我一直在查看其他一些我猜想已经过时的 selenium API 或者似乎没有的东西有一个方法,但简单的答案是只查看语言 =) 下的 selenium rc 文档,它的命令如下: ret = sel.get_string("getBodyText", [])
    【解决方案3】:

    使用 Selenium Webdriver 和 Python,您只需访问 .page_source 属性即可获取当前页面的来源。

    例如,使用Firefox()驱动:

    from selenium import webdriver
    
    
    driver = webdriver.Firefox()
    driver.get('http://www.example.com/')
    
    print(driver.page_source)
    
    driver.quit()
    

    【讨论】:

      猜你喜欢
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 2020-05-16
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多