I need to find a way to start the selenium webdriver only on demand and with the button 'Start'. when I do so and I launch the web_test function, I get the Error : 'name 'web_driver' is not defined'.
I can only make it work when the webdriver is launched at start(web_driver = webdriver.Edge('msedgedriver.exe')
line 6 in the following exemple).
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()