在不启动webdriver的情况下设置python-selenium-webdriver



我需要找到一种方法,只在需要时使用按钮"启动"来启动selenium网络驱动程序。当我这样做并启动web_test函数时,我会得到错误:"name"web_driver"未定义"。

我只能在开始时启动Web驱动程序时使其工作(以下示例中的web_driver = webdriver.Edge('msedgedriver.exe')第6行(。

from tkinter import *
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

##web_driver = webdriver.Edge('msedgedriver.exe')
def start_webdriver():
web_driver = webdriver.Edge('msedgedriver.exe')
def stop_webdriver():
web_driver.quit()
def web_test():
web_driver.get('https://stackoverflow.com/')
web_driver.find_element_by_name('q').send_keys('python selenium')
web_driver.find_element_by_name('q').send_keys(Keys.ENTER)

CanvasWd = 500
CanvasHg = 300
root = Tk()
root.title("app")
root.geometry(f"{CanvasWd}x{CanvasHg}")

canvas0 = Canvas(root,highlightthickness=0,width=CanvasWd,height=CanvasHg)
web_start_btn = Button(root,text='Start',command=start_webdriver)
web_stop_btn = Button(canvas0,text='Stop',command=stop_webdriver)
web_test_btn = Button(canvas0,text='testing',command=web_test)

canvas0.create_window(30, 10, anchor=NW, window=web_start_btn)
canvas0.create_window(10, 45, anchor=NW, window=web_stop_btn)
canvas0.create_window(90, 45, anchor=NW, window=web_test_btn)
canvas0.grid(row=1, column=1)
root.mainloop()

我需要找到一种方法,只在需要时启动selenium网络驱动程序和按钮"启动">

要定义一个类,您可以简单地调用关联的方法,例如start_webdriver来启动web驱动程序,或者main,它是一个包含所有tkinter代码的方法。

__init__方法中定义的任何变量都可以由该类的其他方法访问,这将解决没有定义web驱动程序的问题。

from tkinter import *
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

##web_driver = webdriver.Edge('msedgedriver.exe')
class driver():
def __init__(self):
self.CanvasWd = 500
self.CanvasHg = 300
self.root = Tk()
self.root.title("app")
self.root.geometry(f"{self.CanvasWd}x{self.CanvasHg}")

def start_webdriver(self):
self.web_driver = webdriver.Edge('msedgedriver.exe')
def stop_webdriver(self):
self.web_driver.quit()
def web_test(self):
self.web_driver.get('https://stackoverflow.com/')
self.web_driver.find_element_by_name('q').send_keys('python selenium')
self.web_driver.find_element_by_name('q').send_keys(Keys.ENTER)
def main(self):
canvas0 = Canvas(self.root,highlightthickness=0,width=self.CanvasWd,height=self.CanvasHg)
self.web_start_btn = Button(self.root,text='Start',command=self.start_webdriver)
self.web_stop_btn = Button(canvas0,text='Stop',command=self.stop_webdriver)
self.web_test_btn = Button(canvas0,text='testing',command=self.web_test)

canvas0.create_window(30, 10, anchor=NW, window=self.web_start_btn)
canvas0.create_window(10, 45, anchor=NW, window=self.web_stop_btn)
canvas0.create_window(90, 45, anchor=NW, window=self.web_test_btn)
canvas0.grid(row=1, column=1)
self.root.mainloop()
d = driver()
d.main()

相关内容

最新更新