Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当您';我打开的标签太多了。。。?_Python_Python 3.x_Selenium_Loops_Selenium Webdriver - Fatal编程技术网

Python 当您';我打开的标签太多了。。。?

Python 当您';我打开的标签太多了。。。?,python,python-3.x,selenium,loops,selenium-webdriver,Python,Python 3.x,Selenium,Loops,Selenium Webdriver,我一直在尝试使用selenium、tkinter编写代码来监视/跟踪您的选项卡,并在打开过多选项卡时通知您 当我打开超过4个选项卡时,我希望程序通知我。 默认情况下,我使用该代码打开4个选项卡,并希望看到当我打开第5个选项卡时,它是否会通知我消息…但它似乎不起作用。有什么建议吗(((( 当您尝试使用tkinter显示消息框时,您还将得到一个不可靠的主窗口,该窗口也没有任何用处,而且您不能仅显示消息框。因此,我建议您在主窗口之外创建一个消息框。代码如下所示 from selenium import

我一直在尝试使用selenium、tkinter编写代码来监视/跟踪您的选项卡,并在打开过多选项卡时通知您

当我打开超过4个选项卡时,我希望程序通知我。 默认情况下,我使用该代码打开4个选项卡,并希望看到当我打开第5个选项卡时,它是否会通知我消息…但它似乎不起作用。有什么建议吗((((


当您尝试使用tkinter显示消息框时,您还将得到一个不可靠的主窗口,该窗口也没有任何用处,而且您不能仅显示消息框。因此,我建议您在主窗口之外创建一个消息框。代码如下所示

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from tkinter import messagebox
import time
from tkinter import *
root = Tk()
driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get("http://www.google.com/")

driver.execute_script("window.open('');")

driver.switch_to.window(driver.window_handles[1])
driver.get("http://www.stackoverflow.com/")
driver.execute_script("window.open('');")
driver.execute_script("window.open('');")

while True:
    tabs_num= len(driver.window_handles)
    if tabs_num > 4:
        
        my_button = Button(root,
                   text = "ok",
                   command = root.destroy)
        
        my_label = Label(root,text = "yeet")
        my_label.pack()
        root.lift()
        my_button.pack()
        break

@kantypop您想让tkinter显示windows通知还是消息?难道您还看不到打开了多少选项卡吗?我看不出这实际上是如何解决问题的。@JashSmith我想让tkinter显示消息。我只想确保在我打开第五个选项卡时显示并通知我。@KarlKnechtel我只想做一个程序ram我自己,当我有一定数量的选项卡时会通知我,因为我总是打开过多的选项卡。我在这段代码中打开了4个选项卡,这样当我打开第5个选项卡时,我就可以很容易地看到它是否通知我。我知道有一些程序可以完成这项工作,但我只是想自己尝试一下,以便于学习。你尝试过
如果选项卡_num>=4:
。非常感谢!!!它按照我的要求工作。当我检查代码并了解您是如何做到这一点的时候。我很好奇,不知您能否告诉我root=Tk()的用法?我打印(键入(root))它显示了。我对它进行了研究,但不能完全理解这个函数是如何工作的。很抱歉,我是一个新手,但如果你能告诉我它在外行术语中的作用,它会有帮助的!谢谢!或者你可以简单地使用
root.draw()
这将隐藏主窗口,而
消息框将单独弹出。@Kentypop
tkinter
是另一种语言tcl/tk的包装器。当你说
root=tk()
,您正在创建一个tcl解释器。您使用的整个messagebox来自tcl,当已经有messagebox时,不需要创建您自己的messagebox。您只需在
root=Tk()
之后添加
root.draw()
并使用
messagebox.showinfo()来隐藏弹出的额外窗口
像以前一样。@Kentypop root=Tk()的角色完全是由Cool Cloud解释的。请仔细阅读。@CoolCloud或者您可以简单地使用root.draw()来隐藏主窗口,消息框将单独弹出。尝试过了!!谢谢。感谢您对root=Tk()的解释我有很多东西要学。你启发了我。谢谢。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from tkinter import messagebox
import time
from tkinter import *
root = Tk()
driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get("http://www.google.com/")

driver.execute_script("window.open('');")

driver.switch_to.window(driver.window_handles[1])
driver.get("http://www.stackoverflow.com/")
driver.execute_script("window.open('');")
driver.execute_script("window.open('');")

while True:
    tabs_num= len(driver.window_handles)
    if tabs_num > 4:
        
        my_button = Button(root,
                   text = "ok",
                   command = root.destroy)
        
        my_label = Label(root,text = "yeet")
        my_label.pack()
        root.lift()
        my_button.pack()
        break