Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x Selenium Python:execute_脚本在循环中只执行一次_Python 3.x_Selenium_Selenium Webdriver_Automation_Selenium Chromedriver - Fatal编程技术网

Python 3.x Selenium Python:execute_脚本在循环中只执行一次

Python 3.x Selenium Python:execute_脚本在循环中只执行一次,python-3.x,selenium,selenium-webdriver,automation,selenium-chromedriver,Python 3.x,Selenium,Selenium Webdriver,Automation,Selenium Chromedriver,我想在不关闭浏览器的情况下执行以下任务3次。 在选项卡中打开Google.com。 打开新选项卡 然后关闭包含Google.com的标签 在上一个新打开的选项卡中打开Google.com 我正在使用以下代码打开新选项卡: browser.execute_script("window.open('', 'new_tab')") 但在循环中执行时,它只执行一次 我已经打印了大量的窗口句柄,这表明execute_脚本只执行一次 我的完整代码: cpath="C:/Users/Gupta Niwas/

我想在不关闭浏览器的情况下执行以下任务3次。 在选项卡中打开Google.com。 打开新选项卡 然后关闭包含Google.com的标签 在上一个新打开的选项卡中打开Google.com

我正在使用以下代码打开新选项卡:

browser.execute_script("window.open('', 'new_tab')")
但在循环中执行时,它只执行一次

我已经打印了大量的窗口句柄,这表明execute_脚本只执行一次

我的完整代码:

cpath="C:/Users/Gupta Niwas/Downloads/Softwares/Browsers/Drivers/chromedriver_win32/chromedriver.exe"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("start-maximized")
#browser = webdriver.Firefox(executable_path=fpath)
browser = webdriver.Chrome(chrome_options=chrome_options,executable_path=cpath)


for i in range(3):

    browser.get("https://google.com")
    print(len(browser.window_handles))

    print("current:",browser.current_window_handle)

    browser.execute_script("window.open('', 'new_tab')")

    print(len(browser.window_handles))
    next_tab=browser.window_handles[len(browser.window_handles)-1]
    print(next_tab)
    print(browser.title)
    browser.close()
    print(len(browser.window_handles))

    browser.switch_to_window(next_tab)
    browser.delete_all_cookies()
在第二个循环中,它抛出一个异常:

runfile('C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi/temp5.py', 

wdir='C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi')
1
current: CDwindow-75E62D95A2A8A7808C5AC369A8070641
2
CDwindow-F1C8AFC0E5742A2E55CEA17FCD951D1D
Google
1
1
current: CDwindow-F1C8AFC0E5742A2E55CEA17FCD951D1D
1
CDwindow-F1C8AFC0E5742A2E55CEA17FCD951D1D
Google
Traceback (most recent call last):

  File "<ipython-input-1-12046950abfa>", line 1, in <module>
    runfile('C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi/temp5.py', wdir='C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi/temp5.py", line 34, in <module>
    print(len(browser.window_handles))

  File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 719, in window_handles
    return self.execute(Command.GET_WINDOW_HANDLES)['value']

  File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 314, in execute
    self.error_handler.check_response(response)

  File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)

WebDriverException: no such session
  (Driver info: chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),platform=Windows NT 10.0.17134 x86_64)
runfile('C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi/temp5.py',
wdir='C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi')
1.
电流:CDwindow-75E62D95A2A8A7808C5AC369A8070641
2.
CDwindow-F1C8AFC0E5742A55CEA17FCD951D
谷歌
1.
1.
当前:CDwindow-F1C8AFC0E5742A2E55CEA17FCD951D
1.
CDwindow-F1C8AFC0E5742A55CEA17FCD951D
谷歌
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
runfile('C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi/temp5.py',wdir='C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi')
文件“C:\ProgramData\Anaconda3\lib\site packages\spyder\utils\site\site customize.py”,第705行,在runfile中
execfile(文件名、命名空间)
文件“C:\ProgramData\Anaconda3\lib\site packages\spyder\utils\site\sitecustomize.py”,第102行,在execfile中
exec(编译(f.read(),文件名,'exec'),命名空间)
文件“C:/Users/Gupta Niwas/Downloads/Programming/Projects/Mi/temp5.py”,第34行,在
打印(len(浏览器窗口句柄))
文件“C:\ProgramData\Anaconda3\lib\site packages\selenium\webdriver\remote\webdriver.py”,第719行,在窗口句柄中
返回self.execute(Command.GET_WINDOW_HANDLES)['value']
文件“C:\ProgramData\Anaconda3\lib\site packages\selenium\webdriver\remote\webdriver.py”,执行中第314行
self.error\u handler.check\u响应(响应)
文件“C:\ProgramData\Anaconda3\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第242行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
WebDriverException:没有这样的会话
(驱动程序信息:chromedriver=2.40.565498(ea082db3280dd6843ebfb08a625e3eb905c4f5ab),平台=Windows NT 10.0.17134 x86_64)

我认为有一个问题:

next_tab = browser.window_handles[len(browser.window_handles)-1]
您的
下一个\u选项卡将获取当前窗口引用。当您关闭当前窗口时:

browser.close()

无法切换到下一个选项卡,因为它不存在。我建议您调试您的代码,并找出您应该在
浏览器中使用哪个值。窗口句柄[?]

我正在传递上一个选项卡的窗口句柄,即新创建的选项卡。如果您运行我的代码,我已经添加了打印语句来打印所需点的窗口数。然后您可以看到,在循环2中,窗口句柄的数量没有增加到2。如果您发布获得的完整输出,那就太好了,我现在无法执行代码。