在最小化浏览器的情况下如何使用Selenium Webdriver执行测试

时间:2018-09-25 18:18:51

标签: python selenium selenium-webdriver webdriver

我尝试运行该程序。它可以很好地处理代码,但是当我最小化浏览器时,会弹出错误。似乎程序无法找到该按钮。有什么我可以用来修复的。帮助

import selenium
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import os
import datetime
from tkinter import *
from tkinter import filedialog
from tkinter import messagebox as msgbox

# Using Chrome to access web
driver = webdriver.Chrome()


master = Tk()
master.resizable(0, 0) #0 means false
genType = StringVar(master)       
options = ["1-Day Admission Only", "Audio Only"]
genType.set(options[0])


def optionChanged(var):
    if var == "1-Day Admission Only":
        met()
    elif var == "Audio Only":
        met()

genTypeMenu = OptionMenu(master, genType, *options, command=optionChanged)
        
def start():
    opt = genType.get()
          
    if opt == "1-Day Admission Only":


        
def met_one_day_admission():
    for i in range(int(qty.s.get())): 
        #do somethig here
        
b = Button(master, text="Start", width=20, command=start, fg="red")    
        
qty = entry_with_label("Quantity :", "100")


genTypeMenu.pack()
b.pack()

1 个答案:

答案 0 :(得分:0)

通过启动测试执行时,通常最大化 启动浏览器模式。现在,要执行您的程序/脚本, Selenium 需要在 Browser Client 上呈现 focus ,该呈现器会显示HTML DOM。如果测试执行进行中,如果用户手动强制最小化浏览器,Selenium将失去焦点,在任何时间点都会引发异常,这会导致测试执行停止。

您可以在Selenium stops when browser is manually interrupted

中找到详细的讨论

为什么最小化浏览器会导致找不到元素错误

WebDriver使用浏览器内置的自动化支持直接驱动浏览器。 WebDriver尝试尽可能模拟用户体验和操作,并使用每个浏览器的本机自动化支持直接调用浏览器。对用户体验进行建模需要某些设计,技术和与元素交互的支持。这些交互及其支持的功能取决于您使用的浏览器。简而言之,如果最小化浏览器,则 Selenium 最不可能起作用,因为在最小化浏览器窗口的同时用户无法与网页进行交互。

您可以在Selenium -Why does minimized browser give element not found error whereas max doesn't

中找到@JimEvans的详细分析。