我正在尝试使用c#中的selenium web驱动程序上传文件。
我正在尝试这个: 。WebDriver.FindElement(By.Name("上传&#34))的SendKeys(" C:\ Users \用户测试\桌面\ test.cs中&#34);
但这不起作用。
这在selenium IDE中正常工作,但在selenium webdriver中没有。
以下是页面的HTML代码:
我正在尝试使用以下元素:
<input class="js-attach-file" type="file" tabindex="-1" name="upload">
<!DOCTYPE html>
<html lang="en">
<head>
<body class="page-index firefox firefox-9 windows extra-large-window full-content window-up">
<div id="nocss">
<div id="surface" class="clearfix" style="height: 725px;">
<div class="window-overlay">
<div class="window" style="left: 375px; top: 50px; display: block;">
<div class="window-wrapper clearfix">
<div>
<div class="window-header-utils">
<div class="window-header clearfix">
<div class="window-main-col">
<div class="window-sidebar">
<div class="window-module card-label-list clearfix hide">
<div class="window-module clearfix">
<div class="window-module clearfix attachments">
<h3>Attachments</h3>
<ul class="attachment-list hide"></ul>
<p class="no-attachments empty">No attachments.</p>
<div class="uploader touch-hide">
<form class="realfile" enctype="multipart/form-data" method="post" action="/api/card/4f701c9daf1765861a15545c">
<input type="hidden" value="" name="token">
<input type="hidden" value="attachFile" name="method">
<input type="hidden" value="http" name="format">
<input class="js-attach-file" type="file" tabindex="-1" name="upload">
</form>
<a class="button-link highlight-icon fakefile js-fakefile">
</div>
<p class="error js-file-too-large" style="display:none; -moz-border-radius: 3px; -webkit-border-radius: 3px; font-weight: bold; margin: 8px 0 0; padding: 6px; background: #e3e3e3; ">File too large. 10mb limit.</p>
</div>
<div class="window-module other-actions clearfix">
<div class="window-module quiet-actions clearfix">
</div>
</div>
</div>
</div>
</div>
<div class="pop-over clearfix fancy-scrollbar" style="display: none;">
<script>
<script src="https://d2k1ftgv7pobq7.cloudfront.net/js/78dcaf5810779a263fe6939fc4895487/all.js">
</body>
</html>
答案 0 :(得分:0)
您可以在以下链接中找到解决方案。 您可以使用javascript
解决它 String script = "document.getElementById('fileName').value='" +"C:\\\\temp\\\\file.txt" + "';";
((IJavascriptExecutor)driver).executeScript(script);
答案 1 :(得分:-1)
selenium无法识别或识别属性为type file的元素。
Like example
<input type="file" id="id1" name="abc"></input>
所以,为了处理这种情况,我们必须使用像Point Position这样的第三方工具来计算x&amp;浏览按钮的Y坐标。
然后我们可以在c#中使用低级鼠标点击手柄,或者我们必须使用Autoit V3工具来处理窗口弹出窗口。
上找到更详细的完整说明和实际示例答案 2 :(得分:-3)
如果您使用的是Firefox浏览器,而不是Send keys
使用type
。
如果浏览器是IE,那么你必须使用像Autoit或Selenium 2这样的工具包含方法attach_file
或使用this
sel.attach_file(“css = input [type = file]”,“http://url.com/file.txt”)