为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着星空守着你 2022-07-26 16:01:20
我一直在尝试创建一个程序,该程序将通过循环运行并从 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 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()
    ...


查看完整回答
反对 回复 2022-07-26
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信