2012-12-25 35 views
1

任何人都可以检查this html页面。我无法点击此处的“浏览”按钮。 我试过如下: -无法点击文件上传在webdriver

//1st approach 
>driver.switchTo().frame(0) 
>driver.findElement(By.id("File1")).click 

//2nd Approach 
>(new Actions).moveToElement(..).sendKeys("Keys.ENTER") // with this i could 

//3rd by executing JS in webdriver 
>document.findElementById('').value = 'C://.. ' ; 

似乎没有任何工作。任何人都可以请帮忙?

回答

1

试试这个

driver.switchTo().frame(driver.findElement(By.xpath("//*[contains(@src,'/convert-pdf/default.aspx')]"))); 
driver.findElement(By.id("File1")).sendKeys("C:\\testFile.xls"); 
0
  1. driver.findElement(By.id("File1")).click()在年底失踪。
  2. 的页面有可能会导致您不能够访问iframe错误:

不安全JavaScript尝试与URL http://bcldoc2pdflb-1026005913.us-west-1.elb.amazonaws.com/convert-pdf/default.aspx 从帧帧访问使用URL http://www.pdfonline.com/convert-pdf/default-b.aspx?utm_expid=127285-27&utm_referrer=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F14031004%2Funable-to-click-file-upload-in-webdriver。 域,协议和端口必须匹配。

我(在浏览器的开发工具通过JavaScript控制台)手动试图获得元素,但无法得到的iframe:

f = document.evaluate("//*[contains(@src,'/convert-pdf/default.aspx')]", document, null, XPathResult.ANY_TYPE, null) 
XPathResult 
ifr = f.iterateNext() 
<iframe src=​"http:​/​/​bcldoc2pdflb-1026005913.us-west-1.elb.amazonaws.com/​convert-pdf/​default.aspx" width=​"460px" height=​"670px" frameborder=​"0">​…​</iframe>​ 
ifr.contentDocument 
Unsafe JavaScript attempt to access frame with URL http://bcldoc2pdflb-1026005913.us-west-1.elb.amazonaws.com/convert-pdf/default.aspx from frame with URL http://www.pdfonline.com/convert-pdf/default-b.aspx?utm_expid=127285-27&utm_referrer=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F14031004%2Funable-to-click-file-upload-in-webdriver. Domains, protocols and ports must match. 
null 
d = ifr.contentWindow.document 
Unsafe JavaScript attempt to access frame with URL http://bcldoc2pdflb-1026005913.us-west-1.elb.amazonaws.com/convert-pdf/default.aspx from frame with URL http://www.pdfonline.com/convert-pdf/default-b.aspx?utm_expid=127285-27&utm_referrer=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F14031004%2Funable-to-click-file-upload-in-webdriver. Domains, protocols and ports must match. 
+0

感谢Alex.But我可以访问同样的IFrame中的其他元素(输出文本字段和电子邮件字段)。那怎么可能呢? –

+0

@RohitP,你有没有尝试Santoshsarma建议的?我试过了,它对我有用(在Python中,但这应该不重要) –

0

框架没有在IDE识别。可能的方法是用“AutoIT”来完成。我试过了,它解决了。下面是AutoIt的

Send("{ENTER}") Sleep(1000) Send("D:\questiontovetri.txt") Sleep(1000) Send("{TAB}") Sleep(1000) Send("{TAB}") Sleep(1000) Send("{ENTER}") Sleep(1000) Send("{TAB}") Sleep(1000) Send("{TAB}") Sleep(1000) Send("{TAB}") Sleep(1000) Send("{TAB}") Sleep(1000) Send("{ENTER}") Sleep(1000)

要使用的AutoIt,你需要下载示例代码。请参阅“http://veera-myseleniumblog.blogspot.com/2011/11/handling-authentication-dialog-box.html”援助

一旦你转换你AutoIt脚本可以调用Java代码的EXE喜欢

driver.get("http://www.pdfonline.com/convert-pdf/"); driver.findElement(By.xpath("//a[contains(text(),'Upload a File to Convert...')]")).click(); Runtime run = Runtime.getRuntime(); Process pp=run.exec("D:\\blog.exe"); Thread.sleep(5000); driver.findElement(By.xpath("//a[contains(text(),'Download PDF file')]")).click();

这是工作,我已经测试过它

相关问题