gpt4 book ai didi

PYTHON - Tkinter 和 Selenium 文件转换自动化 : send_keys function returns no attribute & challenge with finding elements

转载 作者:行者123 更新时间:2023-12-01 01:17:35 24 4
gpt4 key购买 nike

我正在尝试自动将 PDF 文件转换为 Excel 文件。我将使用一个简单的网站 ( pdftoexcel.com ) 来进行文件转换。

我首先想使用我新获得的 Tkinter 技能作为代码的第一个功能来浏览文件:

def open_file():

root.filename = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("PDF files","*PDF"),("jpeg files","*.jpg"),("all files","*.*"), ))
print (root.filename)
filelocation = (root.filename)
print (filelocation)

root = Tk()

button1 = Button (root, text = "Browse", command=open_file, fg = "red",bg = "white")
img = PhotoImage (location/to/file/picture.png)
button1.config (image=img)
button1.pack()
root.geometry("500x50")
root.mainloop()

一旦我的浏览功能开始工作,我就开始使用 Selenium 编写代码来在 Google Chrome 中导航:

chromedriver = "path/to/chromedriver.exe"

driver = webdriver.Chrome(ChromeDriverManager().install())

driver.get("https://www.pdftoexcel.com/")
El = driver.find_element_by_name("Filedata").click()
El.send_keys(filelocation)
driver.find_element_by_link_text("/fetch.php?id=361caa98-17b8-11e9-8f58-0cc47a792c0a").click()

time.sleep(3)
driver.quit()

一切似乎都很顺利,直到我必须在网站上选择文件。我希望能够使用使用 Tkinter 浏览文件时获得的文件路径。我见过有人使用

send_keys()

函数,他们将在其中放入文件路径(这就是我的文件路径有文件位置变量的原因)

El.send_keys(filelocation)

但是,我不断收到此错误:

AttributeError: 'NoneType' object has no attribute 'send_keys'

此外,我尝试从网站获取上传和下载元素,以便自动上传和下载。上传似乎工作正常,但无论我尝试使用什么元素进行下载(Xpath、类名、链接文本),我都会不断收到这些错误:

 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"/fetch.php?id=361caa98-17b8-11e9-8f58-0cc47a792c0a"}
(Session info: chrome=71.0.3578.98)

我浏览了网络,但似乎找不到适合我遇到的问题的解决方案。

对我的代码的一些帮助将非常感激!

最佳答案

这里的E1是函数click()的返回值,当然是一个None

driver.get("https://www.pdftoexcel.com/")
E1 = driver.find_element_by_name("Filedata").click()
E1.send_keys(filelocation)

正确的代码应该是这样的:

driver.get("https://www.pdftoexcel.com/")
E1 = driver.find_element_by_name("Filedata")
E1.click()
E1.send_keys(filelocation)

另外,建议,如果你等待网络浏览器,不要简单地使用time.sleep,而是使用selenium time wait模块。

from selenium.webdriver.support.wait import WebDriverWait

关于PYTHON - Tkinter 和 Selenium 文件转换自动化 : send_keys function returns no attribute & challenge with finding elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54176630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com