【发布时间】:2014-09-02 23:46:40
【问题描述】:
我正在执行一些文件上传测试。我发现如果我使用 PhantomJS,我的测试代码会挂在 element.send_keys(file),但是如果我使用 Firefox,相同的代码不会挂起。
element = self.browser.find_element_by_xpath("//input[@type='file']")
element.send_keys(file)
是否有任何解决方法可以使 PhantomJS 正确上传文件?目前我使用的是 Windows 7、Python 3.4.1、selenium 2.42.1、PhantomJS 1.9.7。
【问题讨论】:
-
你能判断输入是否有多重属性
-
输入确实有“多个”属性。
-
当您执行 send.keys(file) 时,我对 PhantomJS 有同样的问题。我没有任何运气前进,我可以说的是硒并没有驱动html5页面那么好。我们不能使用 send_keys 直接设置输入的值。我们需要打开上传浏览器对话框窗口,如果你有一个,并使用 AutoIT 等外部自动化 API 填写文件路径,因为 webdriver 根本不知道对话框窗口,因为它在操作系统域级别下。我知道这很麻烦,但我尝试执行 javascript,Action builder 没有工作。
-
另外,如果可能的话,尝试使用不同的浏览器,如 chrome 或 firefox,因为它易于调试,因为 phantomjs 是一个无头浏览器。
-
即使没有“多个”元素也会发生
标签: python browser selenium-webdriver automation