如何在浏览器最小化时使用硒网络驱动程序执行测试



我尝试运行这个程序。 它适用于代码,但是当我最小化浏览器时,会弹出错误。 程序似乎找不到按钮。 有什么可以用来修复它吗? 帮助

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()

当您通过Selenium启动测试执行时,浏览器通常以最大化模式启动。现在,为了执行你的程序/脚本,Selenium需要关注呈现HTML DOM的浏览器客户端。当测试执行正在进行时,如果用户手动强制最小化浏览器,Selenium 将失去焦点,并且将在任何时间点引发异常,这将停止测试执行

您可以在 Selenium 中找到详细的讨论 当浏览器被手动中断时停止

为什么最小化的浏览器给出找不到元素的错误

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

您可以从Selenium中的@JimEvans中找到详细的分析 - 为什么最小化的浏览器给出元素未找到错误而max没有

相关内容

最新更新