使用Selenium C#上传文件

时间:2016-11-01 11:08:19

标签: c# selenium selenium-chromedriver

我在使用 Chromedriver和C#管理Selenium中的文件上传时遇到问题。我读了几个关于文件上传器对话窗口的类似问题的答案,以及如何解决这个问题。问题是我没有标准的输入元素,而是我有这个:

<div class="scUploadWrapper">
    <div id="Overlay2" class="scUploadOverlay" style="width: 80px; height: 59px;">
        <embed id="yuigen1" type="application/x-shockwave-flash" src="..." style="undefined" name="yuigen1" bgcolor="#ffffff" quality="high" allowscriptaccess="always" wmode="transparent" menu="false" flashvars="allowedDomain=domain.com&elementID=yuigen1&eventHandler=YAHOO.widget.FlashAdapter.eventHandler" tabindex="1" width="100%" height="100%"/>
    </div>
    <a class="scOption" href="#" onclick="javascript:scForm.invoke('media:multiupload(load=1, ownframe=1)');return false">
        <img class="scIcon" src="/temp/IconCache/Applications/32x32/export1.png" alt="" width="32" border="0" height="32"/>
        <div class="scHeader">Upload Files</div>
    </a>
</div>

事情是这个解决方法

linkUploadFiles.WaitTillVisible(); linkUploadFiles.SendText(@"C:\Users\folder\image.PNG");

因此

不可用。任何想法如何处理它?我有点卡住了。非常感谢。

1 个答案:

答案 0 :(得分:0)

Selenium无法处理基于Windows的对话框。而是使用Auto IT脚本。
下面是示例脚本。
根据Windows对话框的属性修改脚本:

Local $hWnd = WinWait("[CLASS:#32770]", "", 120)
ControlClick($hWnd,"","[CLASS:Edit; INSTANCE:1]")
Send($pathofFile)
Send("{ENTER}")
Exit