我一直在尝试创建一个程序,该程序将通过循环运行并从 tkinter GUI 中提取条目并将其传递给 send.keys() 命令。但是,当我使用这个循环时,它将传递 p1.get() 的变量名,而不是拉取该变量等于的任何值。我已经运行了代码,我将其设置为普通列表并使用“测试”从该列表中提取,它可以工作,但它现在的设置方式将无法工作。我还读到有些人必须先向 send.keys() 发送空文本,但这也不起作用。我对 python 和 selenium 都很陌生,所以我可能犯了一个简单的错误并忽略了它,但我们将不胜感激。谢谢你。import tkinter as tkimport timefrom selenium import webdriveroptions = webdriver.ChromeOptions()options.muted = Truebrowser = 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()
1 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
Firstfor i in range(1, 2)
将仅循环一次,i = 1
因为range(a, b)
仅包含 from a
to 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() ...
添加回答
举报
0/150
提交
取消