1

下午好,

我正在尝试使用 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

在此处输入图像描述

在此先感谢各位,非常欢迎任何帮助。

4

1 回答 1

1

这不是 cookie 或缓存问题,它是概念性的。

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

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

我会看一下相关文档

于 2020-01-13T18:28:42.233 回答