【问题标题】:Not Responding window when browser is loading + Text is not changing浏览器加载时无响应窗口+文本未更改
【发布时间】:2018-09-05 15:14:57
【问题描述】:

为什么在浏览器加载时根窗口没有响应...?

这是我的代码中的错误还是所有人都发生了?

可以解决吗?

如果是,怎么做?

我的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
import time
from tkinter import *
from tkinter import ttk
from tkinter import messagebox

root = Tk()
frame = Frame(root)
labelText = StringVar()
display = Label(frame, textvariable=labelText)
labelText.set("Connecting to the server...")
display.pack()
frame.pack()
display.update()

def change_root_label(message):
    labelText.set(message)
    display.pack()
    frame.pack()

change_root_label("Opening...") #updated code for updating question
driver = webdriver.Chrome()
driver.get('https://google.com')
change_root_label("Opened...")


root.mainloop()

为什么不显示文字Opening..

【问题讨论】:

  • 线程中的任何命令都会在前一个命令终止时执行。您的程序只有一个线程(主线程),因此您的问题。看看multithreading
  • 我刚刚更新了一个次要解决方案的问题,对同一个问题有完全相同的问题...
  • 你真的需要检查线程是如何工作的:你的问题现在太宽泛了,有人会很努力地回答。为了更好地理解,从去除noise开始:因为我们假设我们的问题与每个命令的执行时间和执行时间有关,所以尝试将所有与 selenium 相关的任务替换为睡眠时间,看看 GUI 发生了什么

标签: python python-3.x selenium tkinter selenium-chromedriver


【解决方案1】:

将您的函数change_root_label 更改为此应该可以解决您的问题:

def change_root_label(message):
    labelText.set(message)
    display.update()

请记住,除非您想更改它们的包装(在其父级中的位置),否则您不需要再次包装小部件。在您的代码中,display.update() 在您将值设置为 "Connecting to the server..." 后被调用,但在将值更改为 'Opening...' 后,您必须调用 update 或 mainloop 函数来更新您的 UI。因此,在最后调用 mainloop 时,在您的代码中,它会更新您的标签两次,但速度非常快,因此您看不到文本 'Opening...'

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 2013-11-20
    • 2020-04-28
    • 2014-10-16
    • 2012-09-24
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    相关资源
    最近更新 更多