为了账号安全,请及时绑定邮箱和手机立即绑定

如何处理php-webdriver中“过时的元素引用:元素未附加到页面文档”错误中的致命错误?

如何处理php-webdriver中“过时的元素引用:元素未附加到页面文档”错误中的致命错误?

PHP
Helenr 2021-10-08 14:39:11
我需要从加密货币市场读取卖价/买价。但是当市场过于拥挤时就会发生“陈旧元素错误”。我使用 facebook/php-webdirver, Selenium Stand Alone Server 3.9.1.jar 和 chromeDriver 和 PHP 7.1 。这是我第一次尝试选择数据:$driver->findElements(WebDriverBy::xpath("//tr[@class='price-level']//td[@class='bid-price']"));它的最后一个:$driver->wait()->until(WebDriverExpectedCondition::presenceOfAllElementsLocatedBy(WebDriverBy::xpath("//tr[@class='price-level']//td[@class='bid-price']")));第一个问题是我是否以正确的方式获取这些快速变化的数据(如股票市场或加密货币市场)? 加密货币 BID-ASK 表截图 - 来自 Bitz Bitz Cryptocurrency 实时 BID-ASK 表第二个是为什么当我使用下面的代码来避免致命错误时,什么也没发生,致命错误总是发生?try{$asks = $driver->findElements(WebDriverBy::xpath("//tr[@class='price-level']//td[@class='ask-price']"));}catch(StaleElementReferenceException $e){echo 'Error Occurred';}
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

最后在 PHP 上花了一个多星期后,我决定改变我的方式。我回顾了其他语言方法。Js 在每周下载量中排名第一。我首先尝试使用Selenium-WebDriver库,每周下载量超过 140 万次。好的,但我不能使用这个。实际上我不喜欢它是出于个人原因!另一个名为“WebDriverIO”的著名 JS 网页抓取库也不是我想要的!

我以前从未使用过 NodeJS 和 NPM,我找不到快速安装或快速运行它的方法并且很专业。

我尝试了第二次 Python,结果很好:) 启动速度非常快,有很多可读文档可以找到您的目标,还有很多人可以回答您的问题 Python 语法与 PHP 太相似,您可以像连接 MySQL 一样轻松曾经在 PHP 中完成过。

Python 3.7 with Selenium for python帮助我在 10 小时内完成了我的应用程序(包括从零开始学习 Python)。

终于我的应用程序像一个魅力一样工作,我真的很高兴:) 现在我有一个由 HTML/JS(jQueryAjax) 编码的界面 + 服务器上的数据库连接来提供我的 fontend + Python 脚本来抓取和感受 DB。

Try-Catch 仍然无法在 facebook/php-webdriver Php 中工作,但现在谁在乎!


查看完整回答
反对 回复 2021-10-08
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信