【问题标题】:Facebook Webdriver dosen't open a url inside Foreach [duplicate]Facebook Webdriver 不会在 Foreach 中打开 url [重复]
【发布时间】:2020-04-30 09:40:11
【问题描述】:

下午好,

我正在尝试使用 Facebook WebDriver 在 foreach 中打开多个链接,但它只打开第一个。

链接正确到达,字符串,但在第二个链接上它挂起并显示下面的错误。

在我看来,硒驱动器存在 cookie 或缓存问题。

foreach($subjectsList as $subject)
{
    // Get all info subjects each course.
    $subjectTitle = $subject->getText();
    $subjectLink = trim($subject->getAttribute('href'));

    $rawPage = $this->seleniumDriver->get($subjectLink);
} // end Foreach for subjectsLis

在此先感谢大家,非常欢迎任何帮助。

【问题讨论】:

    标签: php selenium codeigniter selenium-webdriver facebook-webdriver


    【解决方案1】:

    这不是 cookie 或缓存问题,而是概念问题。

    $rawPage = $this->seleniumDriver->get($subjectLink); 执行浏览器导航。因此,您的代码将正确解析出第一个链接,并导航到它。但是,当它尝试第二个链接时,selenium 正确识别 $subject 本质上是一个悬空指针(嗯,它包含一个 C 指针,技术上是悬空指针,但是......)指向前一个中的 DOM 元素(释放) 网页/dom-tree。

    要执行您要查找的内容,首先将标题/hrefs 解析为字符串,然后遍历字符串。

    我会看看relevant documentation

    【讨论】:

    • 老实说,我无法理解你告诉我的一切。但是,当你告诉我将 title/href 作为字符串执行时,它已经完成了,当我尝试使用 .get() 时,我使用字符串
    • 重点是在调用get()之前从$subjectsList提取所有相关信息。使用 get() 方法会使浏览器从 url 加载新页面,替换当前加载的页面(阅读文档)。一旦发生这种情况,$subjectsList 中的元素现在将成为不再存在的页面的一部分。
    • 感谢您的回复。我按照你告诉我的做了,但还是不行数组中的链接然后我对其进行迭代,但当它调用第 735 行时仍然无法正常工作。
    • 我想我在我的 Facebook 上加了你,如果没有,你可以帮助我,加我:facebook.com/gfilgueiras
    猜你喜欢
    • 2012-08-03
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2020-06-26
    • 1970-01-01
    • 2015-10-22
    相关资源
    最近更新 更多