当前位置: 首页 > 知识库问答 >
问题:

Python selenium在启动时等待浏览器加载[重复]

贡可人
2023-03-14

我试图在新选项卡中打开站点,代码:

from selenium import webdriver
import time
driver = webdriver.Chrome('/home/metulburr/chromedriver')
# List of opened tabs
print('before sleeping', window_handles)
# Open a new window
# This does not change focus to the new window for the 
driver.driver.execute_script("window.open('');")
# Switch to the last window
driver.switch_to.window(driver.window_handles[-1])
print('after sleeping', window_handles)
# Not all opened tabs
`before sleeping: ['CDwindow-112051A6FC23C19FA18D321731625FC9']`

#  All opened tabs
`after sleeping: ['CDwindow-112051A6FC23C19FA18D321731625FC9', 'CDwindow-532838AFFB2AE8E9EDA90EE64EAF5B35', 'CDwindow-CC54E7485C7B05C3D4B2FB689223BE17', 'CDwindow-28A3CFCF6F2958F3D4467E524BC4FB8E', 'CDwindow-E407D73A0C9F6217C05DE8D4E39BFD4F', 'CDwindow-4AD3703CB6EBB1422CB1372542CF539D', 'CDwindow-CE33E7029F395EA85870BDD5483FFF73', 'CDwindow-0CD0D27B0C3C883A38A741EF599EB349', 'CDwindow-D29CB358CDF127688C3ED6EDCE62348F']`

共有1个答案

陈实
2023-03-14

您可能会用一个循环来迭代所有窗口来修复它。对于每个窗口,打开一个新的选项卡,切换到选项卡并使用Driver.get('url')。

在循环结束时,您将位于最后一个选项卡。不需要时间。sleep()

 类似资料:
  • 问题内容: 题 我想启动Firefox Web浏览器作为访问特定网站的过程,然后等待它关闭。 一种特殊情况是浏览器可能已经打开并正在运行,因为用户可能已经访问过某些网站。 在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,并且新启动的过程将立即终止。这不应该使我的等待过程感到困惑:要么,我想要一个新的浏览器窗口(如果可以通过命令行参数强制执行),然后等待直到将其关闭,或者保留现有的浏览器窗口

  • 问题内容: 我创建了一个小的屏幕抓取器,并且一切似乎都运行良好,信息被提取并保存在数据库中。我唯一遇到的问题是有时Python不使用,因此它尝试在错误的页面上获取信息并崩溃。我尝试添加一个,但有时仍然无法正常工作。我正在尝试对其进行优化,以尽可能减少时间。因此,使其hibernate30秒似乎不是一个好的解决方案。 问题答案: 这是最好的解决方案。不能保证back()和forward()方法有效。

  • 问题内容: public class Dem { public static void main(String[] args) throws InterruptedException { WebDriver driver; String url = "https://www.google.com”; System.setProperty(“webdriver.chrome.driver”,”C:\

  • Selenium webdriver和Chrome driver是最新版本 Selenium webdriver:3.14.0 ChromeDriver:2.42 Java:1.8.0_181 这是运行代码后的错误。谷歌chrome根本没有推出。 严重:org.apache.commons.exec.executeException:进程退出,但出现错误:-1073741792(退出值:-1073

  • 问题内容: 我正在使用Ubuntu 16.04 问题答案: 我遇到了这个问题,终于找到了答案。我一直在使用Marionette驱动程序,该驱动程序不再适用于FF版本53和Selenium 3.5或更高版本。该GeckoDriver文档显示系统属性应该如何引用。 我从以下位置更改了代码: 至: 现在我的本地Firefox运行正常。 希望这对其他人有帮助。

  • 我在我的应用程序中使用SWT浏览器。我需要在浏览器中的超文本标记语言页面上运行脚本。但是脚本是在页面完全加载之前运行的。所以我如何让应用程序等待,直到浏览器完成加载。我曾经尝试过这样的事情。 但是这样不行! 这类似于JavaSWT浏览器:等待动态页面完全加载,但没有解决方案。