Selenium WebDriver .Net Chrome上传文件

3
如何使用Selenium WebDriver在Chrome .NET中上传文件。
版本:Chrome(20.0.1132.57)。 版本chromedriver 22.0.1203.0b
代码:
driver.GetElement(someXpath).SendKeys(filePath)

抛出异常:

元素在 (144, 90.5) 点上不可点击。其他元素将接收点击: <h2>...</h2>

HTML代码:

<a class="button addfile"> Upload <input class="fileupload" type="file" multiple="" name="files[]"/> </a>

不可点击的元素是否在之前被禁用了?如果是,那么在 SendKeys() 之前可能需要添加等待命令。 - Declan McNulty
1
此元素在该时刻已启用并可见于页面上。 - Anvar Ramazanov
1
在 FireFox 中,这段代码可以正常工作,但我需要在 Chrome 中运行我的测试。 - Anvar Ramazanov
1
@AnvarRamazanov,你解决了这个问题吗?我也刚遇到了它。 - James Crowley
你的XPATH长什么样? - Entree
1个回答

2

您可以使用JavaScript强制元素可见。 对于输入元素,使用IJavaScriptExecutor执行JavaScript,并将元素的可见性设置为visible,为了保险起见,还要给它一些尺寸。

    ((JavascriptExecutor)driver).ExecuteScript("arguments[0].style.visibility = 'visible';
arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; 
arguments[0].style.opacity = 1", fileUploadElement);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接