首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python如何修复WebDriverException: Message:目标框架分离

Python如何修复WebDriverException: Message:目标框架分离
EN

Stack Overflow用户
提问于 2022-04-17 18:14:58
回答 1查看 733关注 0票数 1

我正在编写一个程序,通过搜索查询爬行。

  1. 从第一个查询页面中删除所有标题。
  2. 单击每个标题的每个链接,删除链接的主体并退出。
  3. 移到下一页

它对大多数人来说都很好,昨晚的480个冠军也是如此。但是使用相同的代码,它会继续返回以下内容。

在不同的标题下,有一次,第二个查询页面的第八个标题可能会出现一个错误,而另一个时候,第一个页面的第六个标题会弹出一个错误等等。

我完全不明白为什么它以前是好的,为什么它现在是这样的行为。我希望你能给我一些建议。

我正在使用Anaconda -木星笔记本,Selenium (4.1.0)。还有Python。

代码语言:javascript
运行
复制
WebDriverException                        Traceback (most recent call last)
<ipython-input-100-21e892bd2f24> in <module>
      1 #to_next_page(browser)
----> 2 crawl_page(browser)
      3 #x = XPath_finder(10, browser)
      4 #x.click()

<ipython-input-95-32c6665608a1> in crawl_page(browser)
     10     # 본문 구하는 부분
     11     for i, _ in enumerate(page_titles, 1):
---> 12         XPATH = XPath_finder(i, browser)
     13         XPATH.click()
     14         bs2 = BeautifulSoup(browser.page_source, 'html.parser')

<ipython-input-96-1904e01f1b97> in XPath_finder(i, browser)
      1 def XPath_finder(i, browser):
----> 2     elements = browser.find_elements(By.CLASS_NAME, 'txt_wrap')
      3     target = elements[i-1].find_element(By.TAG_NAME, 'a')
      4     return target

C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in find_elements(self, by, value)
   1277         # Return empty list if driver returns null
   1278         # See https://github.com/SeleniumHQ/selenium/issues/4555
-> 1279         return self.execute(Command.FIND_ELEMENTS, {
   1280             'using': by,
   1281             'value': value})['value'] or []

C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute(self, driver_command, params)
    422         response = self.command_executor.execute(driver_command, params)
    423         if response:
--> 424             self.error_handler.check_response(response)
    425             response['value'] = self._unwrap_value(
    426                 response.get('value', None))

C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py in check_response(self, response)
    245                 alert_text = value['alert'].get('text')
    246             raise exception_class(message, screen, stacktrace, alert_text)  # type: ignore[call-arg]  # mypy is not smart enough here
--> 247         raise exception_class(message, screen, stacktrace)
    248 
    249     def _value_or_default(self, obj: Mapping[_KT, _VT], key: _KT, default: _VT) -> _VT:

WebDriverException: Message: target frame detached
  (Session info: chrome=100.0.4896.88)```
EN

回答 1

Stack Overflow用户

发布于 2022-04-17 22:20:55

当你看到错误信息时..。

代码语言:javascript
运行
复制
WebDriverException: Message: target frame detached

在您使用的二进制文件版本之间,incompatibility可能是...indiscriminately的一个可能原因。

解决方案

确保:

tl;dr

支撑平台

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71904350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档