标签: headless-browser

如何在PHP中使用Selenium?

我想使用Selenium自动执行一些Web任务(不用于测试).我认为我安装了Selenium RC Server,但由于我在PHP中找不到客户端驱动程序,因此无法编写"测试脚本"(参见:http://seleniumhq.org/download/).

有没有办法让我使用Selenium和PHP?这似乎表明我需要PHPUnit http://www.phpunit.de/manual/current/en/selenium.html.我只想自动执行一些任务,而不是参与全套测试.

php selenium web-testing headless-browser

14
推荐指数
2
解决办法
5万
查看次数

防止Python驱动的PhantomJS/Selenium中的CSS /其他资源下载

我试图通过阻止下载CSS /其他资源来加速Python中的Selenium/PhantomJS webscraper.我需要下载的是img src和alt标签.我发现了这段代码:

page.onResourceRequested = function(requestData, request) {
    if ((/http:\/\/.+?\.css/gi).test(requestData['url']) || requestData['Content-Type'] == 'text/css') {
        console.log('The url of the request is matching. Aborting: ' + requestData['url']);
        request.abort();
    }
};
Run Code Online (Sandbox Code Playgroud)

via:如何控制PhantomJS跳过下载某种资源?

如何/在哪里可以在由Python驱动的Selenium中实现此代码?或者,还有另一种更好的方法来阻止CSS /其他资源下载吗?

注意:我已经找到了如何通过编辑service_args变量来阻止图像下载:

如何在python webdriver中为phantomjs/ghostdriver设置代理?

PhantomJS 1.8与python上的Selenium.如何阻止图像?

但是service_args无法帮助我使用像CSS这样的资源.谢谢!

python selenium web-scraping headless-browser phantomjs

14
推荐指数
1
解决办法
6583
查看次数

使用带有`--headless`开关的Chrome来测量用户页面加载时间

我正在尝试提高我的Web服务器的性能,并希望准确衡量用户加载页面所需的时间.我想象的方式是模拟用户的并发请求,并跟踪页面加载时间的变化,因为我微调各种设置以获得最佳结果.

我想使用Chromium的最新快照和--headless开关来测量用户加载页面所需的时间,但由于这是一个相对较新的功能而且我不熟悉所有可能的开关,我'如果有人可以分享他们将要运行的东西以获得准确的结果,我将不胜

我唯一的限制是我不能以某种其他方式注入脚本或修改响应内容,这对于这样的测试是有帮助的.

performance google-chrome chromium headless-browser

14
推荐指数
1
解决办法
2870
查看次数

Selenium ChromeDriver无法识别新编译的Headless Chromium(Python)

我正在尝试使用新的(2016)头版Chromium和Selenium/ChromeDriver(过去,我使用Firefox和xfvb,但这有望更好).

我根据我在这里找到的说明编译了Chromium的无头版本(我没有找到任何预先构建的二进制文件)然后我使用以下代码通过Selenium启动它:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

l_option = Options()
l_option.add_argument('headless')
l_option.add_argument('disable-notifications')
l_option.binary_location = '/home/fi11222/Headless_Chromium/headless_shell'
l_driver = webdriver.Chrome(chrome_options=l_option)
Run Code Online (Sandbox Code Playgroud)

相同的代码适用于标准铬(如果我删除binary.location选项)

但是,我收到以下错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: unrecognized Chrome version: HeadlessChrome/59.0.3032.0
  (Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.4.0-53-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

显然,无头铬二进制文件使用ChromeDriver无法识别的版本ID进行编译.救命 !!

环境:

  • 编译:Ubuntu 16.04服务器
  • Selenium执行:Linux Mint 18.1

python selenium chromium headless-browser selenium-chromedriver

14
推荐指数
1
解决办法
6634
查看次数

在Python中创建无头Chrome实例

在研究了在Python中创建无头Chrome实例的可用选项并询问确认或描述"更好方法"的资源之后,此问题描述了我的结论.

从我所看到的,似乎在Python应用程序中开始使用无头Chrome实例的最快方法是使用CEF(http://code.google.com/p/chromiumembedded/)和CEFPython(http: //code.google.com/p/cefpython/).CEFPython似乎还不成熟,所以使用它可能意味着在我能够加载一个加载网页(和所需文件)的无头Chrome实例之前进一步定制,解析一个完整的DOM,然后让我从Python运行任意JS.

我是否错过了其他更成熟或更容易让我更轻松的项目?

python google-chrome embedded-browser headless-browser

13
推荐指数
2
解决办法
2万
查看次数

最简单的方法是"浏览"页面并使用Java提交表单

我需要做的是浏览网页,登录,然后浏览到该网站上需要您登录的另一个网页,因此需要保存cookie.之后,我需要单击该页面上的一个元素,我将在其中填写表单并获取网页返回给我的消息.我需要实际进入页面并单击按钮的原因只是直接导航到链接是因为每次登录时都会为您分配一个会话ID并单击该链接,并且它始终不同.按钮看起来像这样,它不是正常的href链接:

<span id=":tv" idlink="" class="sA" tabindex="0" role="link">Next</span>
Run Code Online (Sandbox Code Playgroud)

无论如何,最简单的方法是什么?谢谢.

更新:在尝试了HTMLunit和其他无头浏览器库之后,它似乎并没有使用任何"无头"的东西.我最近发现的关于这个页面的另一件事是,所有HTML都是以某种奇怪的格式......它都在一个脚本标签内.这是一个例子.

"?ui\x3d2\x26view\x3dss\x26mset\x3dmain\x26ver\x3d-68igm85d1771\x26am\x3d!Zsl-0RZ-XLv0BO3aNKsL0sgMg3nH10t5WrPgJSU8CYS-KNWlyrLmiW3HvC5ykER_n_5dDw\x26fri"],"http://example.com/?ctx\x3d%67mail\x26hl\x3den",,0,"Gmail","Gmail",[["us","c130f0854ca2c2bb",[["n"],["m","New features!"],["u"],["k","0"],["p","1000:500000,10,200000,5,100000,3,75000,2,0,1"],["h","https://survey.googleratings.com/wix/p1679258.aspx?l\x3d1033"],["at","query,5,contacts,5,adv,5,cf,5,default,20"],["v","https://www.youtube.com/embed/Ra8HG6MkOXY?showinfo\x3d0"],
Run Code Online (Sandbox Code Playgroud)

当我检查按钮上的元素时,我在上面为按钮发布的HTML代码出现了,但在进行查看源时却没有.基本上,我需要做的是使用某种GUI并让用户导航到链接,然后让程序填写信息.有谁知道我怎么做到这一点?谢谢.

html java httprequest web-scraping headless-browser

13
推荐指数
2
解决办法
2645
查看次数

chrome in --headless模式:为代理提供凭证/身份验证

我通过以下方式运行chrome:

google-chrome --headless --disable-gpu --dump-dom --disable-web-security

由于公司代理,它似乎碰到要求输入凭据的身份验证弹出窗口.如何在命令行上注入这些凭据?

google-chrome headless-browser

13
推荐指数
1
解决办法
3723
查看次数

如何使用Puppeteer从输入中删除现有文本?

我正在尝试在包含当前记录标题的可编辑输入中测试修改文本 - 我希望能够测试编辑此类文本,将其替换为其他内容.

我知道我可以使用await page.type('#inputID', 'blah');在文本框中插入"blah"(在我的情况下,有现有文本,只附加"blah"),但是,我找不到任何允许删除或替换现有文本的页面方法1.

javascript node.js headless-browser google-chrome-devtools puppeteer

12
推荐指数
4
解决办法
8831
查看次数

x-ray-phantom身份验证,无法有效登录

我真的找不到任何使用x-ray和.driver(phantom())进行身份验证的例子.我已经通过x-ray和x-ray-phantom的文档进行了搜索但却找不到任何救命.

javascript web-scraping headless-browser phantomjs x-ray

11
推荐指数
1
解决办法
621
查看次数

可以使用chrome无头浏览器来保存包含资源的完整网页吗?

我希望使用chrome无头浏览器复制"另存为"功能,以保存包含所有资源的完整网页.有没有办法做到这一点?我尝试了--print-to-pdf和--screenshot选项,并期待探索"另存为"选项.

google-chrome headless headless-browser google-chrome-headless

11
推荐指数
1
解决办法
450
查看次数