Selenium-js:Firefox:错误:TimedPromise 在 300000 毫秒后超时

2024-02-01

我正在尝试在网站上运行我的 selenium javascriptbet365.com https://bet365.com。我使用的是 Firefox (geckodriver),我尝试了无头模式和正常模式,但为了理解/调试问题,非无头模式很有帮助。

这是代码:

const driver = await new Builder().forBrowser("firefox").build();
await driver.get("https://bet365.com");

The problem is that the site is not loading: enter image description here

5分钟后我就得到了错误

TimeoutError: TimedPromise timed out after 300000 ms
    at Object.throwDecodedError (C:\1_code\RFB\git\webscraper-srv\node_modules\selenium-webdriver\lib\error.js:517:15)
    at parseHttpResponse (C:\1_code\RFB\git\webscraper-srv\node_modules\selenium-webdriver\lib\http.js:671:13)
    at Executor.execute (C:\1_code\RFB\git\webscraper-srv\node_modules\selenium-webdriver\lib\http.js:597:28)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async Driver.execute (C:\1_code\RFB\git\webscraper-srv\node_modules\selenium-webdriver\lib\webdriver.js:729:17)
    at async C:\1_code\RFB\git\webscraper-srv\scripts\seleniumUtils.js:190:3
    at async XWrap.<anonymous> (C:\1_code\RFB\git\webscraper-srv\scripts\utils.js:127:60)
    at async XWrap.<anonymous> (C:\1_code\RFB\git\webscraper-srv\scripts\utils.js:127:60)
    at async XWrap.<anonymous> (C:\1_code\RFB\git\webscraper-srv\scripts\utils.js:127:60)
    at async XWrap.<anonymous> (C:\1_code\RFB\git\webscraper-srv\scripts\utils.js:127:60) {
  remoteStacktrace: 'WebDriverError@chrome://marionette/content/error.js:181:5\n' +
    'TimeoutError@chrome://marionette/content/error.js:450:5\n' +
    'bail@chrome://marionette/content/sync.js:229:19\n'

我尝试使用硒访问不同的网站,它们工作得很好,所以我认为我的设置没有问题。 如果我尝试使用普通的 Firefox 浏览器访问该网站,它也能正常工作。 我还尝试在浏览器中手动搜索程序打开的页面,这导致了另一个无限循环。但是在这个浏览器中手动打开由selenium打开的其他页面效果很好。

网页服务器是否可以检测使用selenium启动的浏览器?我一直认为检测网络爬虫的唯一方法是查看它的访问频率以及爬虫在页面上的点击次数,但这是我第一次使用 Selenium 访问该页面......

如果服务器不允许此类请求,是否有任何方法仍然可以从此网页抓取数据?我也已经尝试以无头模式打开它......

This is the (entire) Firefox Network tab when its stuck loading (sometimes it looks a little different): enter image description here

This is the (begin of the) Firefox Network tab when its loaded normally: enter image description here

我圈出了可能导致问题的请求。在浏览器的左下角,它一直告诉我它正在Transfering data from ff.kis.v2.scr.kaspersky-labs.com。我尝试在我的机器上停用卡巴斯基,并让程序在没有卡巴斯基的机器上运行,所以我不太确定为什么提出这个请求。它可能需要对 https 验证做一些事情,但我不确定。

Another interesting thing is that the response of the first request to www.bet365.com/ looks like this (even with selenium): enter image description here Meaning that it does actually reach the server but it just sends a loading screen. Also the following requests get the same response as with the normal browser. Only the requests with status 101 don't give back any response, unlike with the normal browser.

最后有趣的是这个请求www.bet365.com/increment?desktop-site-loaded_11=1。它仅在使用 selenium 浏览器启动时生成,而不是在使用普通浏览器打开站点时生成。这可能意味着它不是加载问题,而是主动阻止请求并告诉后端增加被阻止请求的计数器。

有什么想法可以让代码正常工作或者为什么会出现这个问题?


try

driver.execute_script(f"location.href='{url}';")

代替

driver.get
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium-js:Firefox:错误:TimedPromise 在 300000 毫秒后超时 的相关文章

随机推荐

  • T D[N] 是否总是声明数组类型的对象?

    我很困惑 dcl 数组 1 http eel is c draft dcl array 1 在声明 T D 中 其中 D 的形式为 D1 constant expressionopt attribute specifier seqopt 声
  • 从测试内部访问 ScalaTest 测试名称?

    是否可以从 ScalaTest 测试中访问当前正在执行的测试的名称 我该怎么做 背景 我正在测试我的数据访问对象最终会抛出一个OverQuotaException如果用户例如创建太多页面 这些测试需要相当长的时间才能运行 为了感到更高兴 我
  • 将 HTML 传递给 HTML 模板

    我知道如果我们想将变量从 gs 传递到 HTML 模板 我们可以这样做 在 html 上 使用 div table thead th Qty th th Item th th Price th th Subtotal th thead tb
  • 使用保留下划线的 xjb 覆盖 JAXB 属性名称

    自定义 xjb 非常适合根据需要覆盖名称 但是我们会丢失名称中的下划线
  • \S、\W、\D 在正则表达式中代表什么?

    在 shell 脚本中 t 代表制表符 s 代表空白 w 代表单词 什么是 W capital W and D capital D 用于 W是相反的 w and D是相反的 d 就像 S是相反的 s W and D分别会匹配什么 w and
  • 刷新 InnoDB 缓存

    我有一些很少运行的报告查询 我需要保证它们的性能 而不依赖于将它们缓存在系统中的任何位置 在测试各种模式和存储过程更改时 我通常会看到第一次运行非常慢 而后续运行速度很快 所以我知道正在进行一些缓存 这使得测试更改变得很麻烦 重新启动 my
  • 如何将方法作为参数传入?

    我刚刚注意到我在 ASP NET 应用程序中重复了很多 C 代码 因此想要创建一个通用方法 我有一系列这样的私有方法 private void PopulateMyRepeatedControl DBUtil DB new DBUtil D
  • 谷歌电子表格中的逻辑例外/差异范围

    我想变得合乎逻辑 A B or A B 在谷歌电子表格中 所以 有 A A 1 2 3 4 and B B 2 3 5 6 所以我的公式 my amazing formula A A B B 应该返回 1 4 A 的元素不存在于 B 中 问
  • React 等价于 ng-repeat

    我是 React js 的新手 我正在尝试绑定数据数组 我正在寻找 ng repeat 的等效项 但我在文档中找不到它 e g var data red green blue 使用角度我会在我的html中做这样的事情 div i div 我
  • OpenGL 编译着色器已损坏

    我正在尝试在 OpenGL 3 2 中编译着色器程序 但遇到奇怪的链接错误 创建顶点和片段着色器并编译并附加它们后 我尝试将它们链接到程序中 但收到以下信息日志错误 ERROR Compiled vertex shader was corr
  • 在 Google 地图上放置街景按钮

    如何在相当典型的 Google 地图上放置街景按钮 使其与右上角的标准地图 卫星 混合按钮一致 我见过这样的一个例子 但现在找不到了 所以 我知道这是可能的 确实是的 人们可以在地图选项中指定控制位置 寻找控制定位 in the 在线文档
  • 有没有办法通过 adobe air 在 Android 上访问蓝牙

    您可以通过 adobe air for mobile 访问 android 的蓝牙 API 吗 确实有一个 Native Process API http tv adobe com watch adc presents invoke nat
  • 从结果创建 Observable

    我正在尝试 Angular2 我注意到 http 服务使用Observable对象而不是Promise 我不太喜欢这个选择 async await即将抵达 在我的服务中 我下载了一份列表Plants来自网络服务 单击植物 我会使用路由显示详
  • Foreach 与 Scala 中的 Map [重复]

    这个问题在这里已经有答案了 我尝试了两种方法来列出一些东西 var response List RS TxnNested consumertxnlist foreach txData gt response RS TxnNested bla
  • 动态改变较少的变量

    我想在客户端更改一个 less 变量 假设我有一个 less 文件 color1 123456 color2 color1 111111 title color color1 text color color2 我希望用户选择一种颜色并更改
  • touchDragged 在 libgdx 中如何工作?

    我目前正在学习libgdx游戏编程 现在我已经学会了如何使用touchDown 但我不知道如何使用touchDragged 计算机如何知道手指被拖动的方向 用户是否向左或向右拖动 计算机不知道这一点 或者至少界面不会告诉你这个信息 它看起来
  • Web 服务器找不到请求的资源 Visual Studio 调试

    Issue 我有一个在 Visual Studio 2012 中运行的 net 4 0 Web 应用程序 每次我去调试该站点时都会收到以下错误 Web 服务器找不到请求的资源 我尝试过的 我已经按照微软的网站提供了解决方案 msdn htt
  • 存储 JavaScript 对象的状态

    我试图将 this 的统计信息存储在我的 javscript 对象中 以便稍后在我的应用程序中我可以将 this 返回到之前的状态 我以为我可以使用闭包来完成 但到目前为止我还没有成功 我的想法是做这样的事情 function SavedF
  • 对 char 进行按位运算给出 32 位结果

    我一直在用 C 编写一个程序 将字符的前 4 位移至末尾 将后 4 位移至开头 对于大多数值 它可以正常工作 以及相反的操作 但对于某些值 如 8 x y z 它给出的结果是 32 位值 通过打印变量的十六进制值检查值 谁能解释为什么会发生
  • Selenium-js:Firefox:错误:TimedPromise 在 300000 毫秒后超时

    我正在尝试在网站上运行我的 selenium javascriptbet365 com https bet365 com 我使用的是 Firefox geckodriver 我尝试了无头模式和正常模式 但为了理解 调试问题 非无头模式很有帮