51Testing软件测试论坛

标题: selenium+python [打印本页]

作者: kakaxi5221    时间: 2016-6-8 00:29
标题: selenium+python
源程序:
from selenium  import webdriver
import os
import time

driver=webdriver.Ie()
file_path='file:///'+os.path.abspath('upfile.html')
driver.get(file_path)

#定位上传按钮,添加本地文件
driver.find_elements_by_name("file")[0].send_keys('D:\\upload_file.txt')
time.sleep(10)

driver.quit()
报错信息:
Traceback (most recent call last):
  File "F:/python/upload_file.py", line 10, in <module>
    driver.find_elements_by_name("file").send_keys('D:\\upload_file.txt')
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 374, in find_elements_by_name
    return self.find_elements(by=By.NAME, value=name)
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 771, in find_elements
    {'using': by, 'value': value})['value']
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 233, in execute
    self.error_handler.check_response(response)
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Finding elements with name == filereturned an unexpected error

补充说明:在Firefox下运行正常,修改为Ie就报上面的错误,希望专业人士能解答。

作者: 掉渣饼    时间: 2016-6-8 09:45
把driver.find_elements_by_name("file")[0].send_keys('D:\\upload_file.txt')替换成:
driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')
作者: 清晨一缕阳光    时间: 2016-6-8 10:04
你这个上传什么样的?点击上传按钮弹出选择框?还是直接选择文件,点击上传按钮直接上传完成?
若是第一种就相对来说麻烦点,可以借用一个三方的工具上传;第二种的话,应该有个文本框,可以直接定位这个文本框,然后sendkey文件的绝对路径,再定位上传按钮click按钮就可以。
作者: Miss_love    时间: 2016-6-8 10:21
用其他定位方式试试
作者: kakaxi5221    时间: 2016-6-11 00:08
掉渣饼 发表于 2016-6-8 09:45
把driver.find_elements_by_name("file")[0].send_keys('D:\%upload_file.txt')替换成:
driver.find_elem ...

你说的方法,我试了,还是报同样的错误




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2