如何使用selenium
自动上传文件。
如何提供文件路径??
我的TextBox
是Readonly。我无法直接在textbox
。
另外,如何在该文件完全上传之前停止selinum服务器。??
我的文件上传字段是一个不可见的字段。我发现它的代码使用firebug添加。
在添加文件代码之前是这样的。
<input id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" type="hidden" name="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" autocomplete="off" value="{'isEnabled':'true','uploadedFiles':[]}">
添加文件(doc文件)后。代码更改为
<input id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" type="hidden" name="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" autocomplete="off" value="{'isEnabled':'true','uploadedFiles':[{"fileInfo":{"FileName":"scope.docx","ContentType":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","ContentLength":12887},"metaData":"/wEFsAF7IlRlbXBGaWxlTmFtZSI6ImZyeWd1NGNqLmt1YSIsIkFzeW5jVXBsb2FkVHlwZU5hbWUiOiJUZWxlcmlrLldlYi5VSS5VcGxvYWRlZEZpbGVJbmZvLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDExLjEuNTE5LjM1LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDQiffOraDjiYXPavAAMYOUAVVhGEKk8"}]}">
这里的Xpath是什么?
我尝试使用xpath id =“ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState”。我使用的代码是
selenium.type("id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState","c:\\docfile1.doc");
但它不起作用。
帮助我..
答案 0 :(得分:1)
您可以使用
selenium.type("xpath of text box","path of your file")
IDE for IDE
command=type
target=xpath_of_text_box
value=Path_of_your_file
示例:
selenium.type("id=cvfile", "D:\\Automation\\resume.doc");
答案 1 :(得分:1)
此input
的XPath表达式为//input[@id='ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState']
。
然而,我担心这不起作用,因为Selenium通常拒绝使用隐形元素。此外,hidden <inputs>
通常只是预填充数据的容器或用于脚本验证和编辑数据的容器。
你应该寻找一个<input type='file' />
,如果有一些,或者可能是一个javascript处理封闭元素的点击(但坦率地说,通常情况并非如此) - 脚本往往会对输入进行编辑,而不是点击它们。)
如果找不到,请发布更多代码。最好的事情是SSCCE,所以抓住页面的来源并使其裸露,从中删除我们不需要的一切。我们喜欢代码。我们喜欢任何裸体的东西。
关于等待上传完成:没有这样的默认事情。如果在通常的表单上载期间发送文件(通过单击“提交”按钮),则浏览器将等待。如果立即上传,您将不得不巧妙地等待。成功上传后实现更改,然后等待该元素/消息出现。使用Selenium 2(WebDriver),这can be done非常easily。