gpt4 book ai didi

python - 提高 headless Selenium 的性能

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:29 25 4
gpt4 key购买 nike

我在跑 Selenium在使用 Xvfb 的 headless Ubuntu 服务器上,如概述 here .

我正在启动 Xvfb:

#!/bin/bash
disp=${1:-"99"}
/usr/bin/Xvfb :$disp -ac 2>&1 | tee /var/log/run-xvfb.log

我正在启动 Selenium-Server:

#!/bin/bash
disp=${1:-"0"}
export DISPLAY=":$disp" && java -jar selenium-server-standalone-2.21.0.jar 2>&1 | tee /var/log/run-selenium-server.log

我的启动代码如下:

from selenium import selenium
sel = selenium('localhost', 4444, '*firefox', 'http://www.google.com')
sel.start() # This takes forever!!!
<do stuff>

我发现它通常有效,但 sel.start() 可能需要 15 分钟或更长时间才能完成。奇怪的是,从未写入日志文件,所以我不知道是否发生了任何错误。就好像是在“悬着”。

当我在我的本地计算机(也是 Ubuntu,但具有正常的桌面 GUI 设置)上运行相同的代码时,运行时间不到一分钟,因此我知道服务器上出现了严重错误。我如何才能诊断出问题并改善 Selenium 糟糕的性能?

最佳答案

你的问题没有包含足够的细节来给你一个好的答案,但我可以给你一些可能有用的提示。如果没有日志,这是一个难以置信的调试难题。

默认情况下,Selenium 会尝试尽可能接近地模拟真实用户。这意味着它将等到页面完全加载后再对其进行任何操作。缓慢的第三方脚本可能会导致长时间挂断。

如果发现默认情况下Selenium BaseTest(unittest.TestCase)也包含这一行:

self.driver.implicitly_wait(20)

删除这一行应该会大大加快每个测试的速度。您的常规 Selenium 设置可能会忽略此行(因为它使用了不同的初始化)。

为了进一步加速,我建议您看看 PhantomJS。即使经过优化,Firefox 测试也需要几分钟时间。

关于python - 提高 headless Selenium 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11283976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com