Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python selenium等待浏览器在启动时加载_Python_Selenium_Selenium Webdriver - Fatal编程技术网

Python selenium等待浏览器在启动时加载

Python selenium等待浏览器在启动时加载,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我正在尝试在“新建”选项卡中打开站点,代码: 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 win

我正在尝试在“新建”选项卡中打开站点,代码:

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']`

当浏览器在启动后(尤其是打开的选项卡)加载其资源时,我如何等待,而无需
time.sleep()

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


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

您的代码只需稍加修改即可正常工作。我在执行你的代码后得到的输出-
睡觉前['CDwindow-6E105BAFB064152C54AA9E3C38ECE238']睡觉后['CDwindow-6E105BAFB064152C54AA9E3C38ECE238','CDwindow-4636328788BF13C1208911E670BFAD15'.
是你忘了提到或添加的东西吗?你是对的,我想到了这样的解决方案,但无论如何,这不是一个完美的解决方案。我希望Selenium有一个API来管理选项卡加载我不知道,如果它确实存在,应该在这里: