Tkinter 条目文本未传递到 Selenium 中的 send.keys()

我一直在尝试创建一个程序,该程序将通过循环运行并从 tkinter GUI 中提取条目并将其传递给 send.keys() 命令。但是,当我使用这个循环时,它将传递 p1.get() 的变量名,而不是拉取该变量等于的任何值。我已经运行了代码,我将其设置为普通列表并使用“测试”从该列表中提取,它可以工作,但它现在的设置方式将无法工作。我还读到有些人必须先向 send.keys() 发送空文本,但这也不起作用。我对 python 和 selenium 都很陌生,所以我可能犯了一个简单的错误并忽略了它,但我们将不胜感激。谢谢你。


import tkinter as tk

import time


from selenium import webdriver

options = webdriver.ChromeOptions()

options.muted = True

browser = webdriver.Chrome('/Users/Matt/Downloads/chromedriver', options=options)


app = tk.Tk()


p1 = tk.StringVar()

p2 = tk.StringVar()


entryPlayer1 = tk.Entry(app, textvariable = p1, width=20)

entryPlayer1.grid(column=1, row=0, padx=10, pady=5, sticky=tk.N)

entryPlayer2 = tk.Entry(app, textvariable = p2, width=20)

entryPlayer2.grid(column=1, row=1, padx=10, pady=5, sticky=tk.S)


def click():

    for i in range(1, 2):

        pID = ("p" + str(i) + ".get()")

        browser.get("https://www.espn.com/")

        time.sleep(1)

        srch_btn = browser.find_element_by_xpath('//*[@id="global-search-trigger"]')

        srch_btn.click()

        srch_bar = browser.find_element_by_xpath('//*[@id="global-search"]/input[1]')

        srch_bar.send_keys(pID)


SubmitButton = tk.Button(app, text = 'Submit', command = click)

SubmitButton.grid(column=3, row=5, pady=10, padx = 10)


app.mainloop()


守着星空守着你
浏览 68回答 1
1回答

潇湘沐

Firstfor i in range(1, 2)将仅循环一次,i = 1因为range(a, b)仅包含 from ato b-1。其次,应该是pID = eval("p" + str(i) + ".get()")。但eval()不推荐使用。尝试使用 list 来保存变量,例如:# if `my_vars` holds the variablesfor i in range(2):     pID = my_vars[i].get()     ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python