Невозможно использовать две разные кнопки в Tkinter для выполнения задач в одном окне chrome, которое я открыл из Selenium в Python - PullRequest
0 голосов
/ 11 июля 2020

Драйвер Selenium работает с моей первой кнопкой, но когда я нажимаю вторую кнопку, которая пытается использовать драйвер Selenium для вызова активного окна, он не работает. Он говорит, что драйвер не определен. Есть ли решение этой проблемы? Чтобы я мог использовать окно, открытое драйвером при предыдущем нажатии кнопки, для выполнения других функций.

def myTask1():   
    driver = webdriver.Chrome(executable_path)
    driver.get("#any website")
    #login to any website using username and password then keep that window open
    window_before = driver.window_handles[0]
    window_before_title = driver.title

button_text1 = StringVar()    
button1 = Button(root,textvariable = button_text1,text="Click me", padx=8, pady=8, width="20", command=myTask1)
button_text1.set("Open the Website")
button1.place(relx=.48, rely=.3, anchor=CENTER) 
   
def myTask2():   
    driver.switch_to.window(window_before)
    #main selenium function to perform


button_text2 = StringVar()    
button2 = Button(root,textvariable = button_text2,text="Click me",padx=8, pady=8, width="20", command=myTask2)
button_text2.set("perform function ")
button2.place(relx=.48, rely=.6, anchor=CENTER)

root.mainloop()

1 Ответ

0 голосов
/ 12 июля 2020

Говоря global driver, вы можете использовать тот же драйвер в первой функции и во второй функции. Переменная драйвера определяется в первой функции, и она остается только внутри первой функции, а вы используете ее метод во второй функции, где он не определен nw. Таким образом, указание global driver сделает его доступным и для второй функции

.
...