我一直在嘗試創(chuàng)建一個程序,該程序?qū)⑼ㄟ^循環(huán)運行并從 tkinter GUI 中提取條目并將其傳遞給 send.keys() 命令。但是,當我使用這個循環(huán)時,它將傳遞 p1.get() 的變量名,而不是拉取該變量等于的任何值。我已經(jīng)運行了代碼,我將其設(shè)置為普通列表并使用“測試”從該列表中提取,它可以工作,但它現(xiàn)在的設(shè)置方式將無法工作。我還讀到有些人必須先向 send.keys() 發(fā)送空文本,但這也不起作用。我對 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條經(jīng)驗 獲得超6個贊
Firstfor i in range(1, 2)
將僅循環(huán)一次,i = 1
因為range(a, b)
僅包含 from a
to b-1
。
其次,應(yīng)該是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
提交
取消