我想在“http://pdfcompressor.com/”网站上自动化文件压缩。我使用selenium上传文件但未能这样做。 以下是代码
file_path = "/home/gugli/Documents/script_py/Dainik_Jagron/h2.pdf"
browser = webdriver.Firefox()
url = 'http://pdfcompressor.com/'
browser.get(url)
我尝试插入输入标记,但得到了错误
browser.find_element_by_id('html5_1cciqvn90sehe7rachs1c3m03').send_keys(filepath)
this is the snapshot of input tag
以下是错误:
Traceback (most recent call last):
File "/home/gugli/Documents/script_py/Dainik_Jagron/uploadfiles.py", line 32, in <module>
browser.find_element_by_id('html5_1cciqvn90sehe7rachs1c3m03').send_keys("/home/gugli/Documents/script_py/Dainik_Jagron/h2.pdf")
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 330, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 832, in find_element
'value': value})['value']
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 297, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException:
Message: Unable to locate element: [id="html5_1cciqvn90sehe7rachs1c3m03"]
该文件存储在“ul”标签中。但是甚至没能上传这个标签。 以下是上传文件前后的dom结构快照
上传的文件存储为“li”元素(图片3)。我尝试插入“div id = carousel”容器,但再次尝试失败。 我怎样才能使用python在这里上传文件。
答案 0 :(得分:1)
从你的网址看来,硒似乎找不到元素
selenium.common.exceptions.NoSuchElementException:
Message: Unable to locate element: [id="html5_1cciqvn90sehe7rachs1c3m03"]
在这种特定情况下,输入字段的id是自动生成的,这意味着它对于每个会话都是不同的。您所看到的身份证明与您通过硒打开时的身份不同。
我建议在这种特殊情况下通过XPath找不到元素
使用XPath .//input[type = 'file']
或其他东西,以便selenium可以识别元素