0

我正在尝试使用selenium. 但问题是我的上传字段不像

<input type="file".....> [where i can directly say "selenium.type("xpath ","file path") ]

但是在这里,为了上传文件,我们使用的是 Rad Uploader,即使我点击它,它也没有在 selenium IDE 中记录任何内容uploader

有人知道如何使用Raduploader上传文件吗?Selenium

<object height="22px" type="application/x-silverlight-2" data="data:application/x-silverlight-2," 
id="ctl00_ctl00_ContentPlaceHolder1_mainTabContainer_thirdTab_ChildPlaceHolderCa‌​mpVolunteers_fileUploadVolunteersilverlight04"
class="ruObject" style="width: 100%;"> 

这是上传字段代码的一部分

谢谢。

4

1 回答 1

1

由于Rad Uploader基本上是一个 Java Applet,您可以使用LiveConnect与之交互!

甚至还有一个用于它和 Selenium 的工具(虽然我没有使用它,所以我不知道它是否运作良好): http: //fest.codehaus.org/Selenium

如果它不起作用,那么您可能需要使用不同的自动化库来上传文件,因为 Selenium 既不能与 Java 小程序一起使用,也不能在浏览器之外工作。可能的解决方案包括将文件从窗口外拖放或 ( Ctrl+C+ Ctrl+Ving) 到您的上传器,或盲目单击“浏览”按钮...


编辑

我显然看错了产品,因为 OP 的代码显示它实际上是 Silverlight 元素,而不是 Java 小程序。

但是 - 知道有一个用于 Java 小程序的工具,我挖掘并找到了这些:

有一个将 Selenium RC 与 Silverlight 一起使用的工具!不知道它实际上有多好,但你可以试一试。是的,我知道它只是 Selenium RC,但你可以试试WebDriverBackedSelenium......

Scott Hanselman 的博客(非常易读!) - “滥用” Silverlight 可以运行Scriptable方法。它是为 Selenium IDE 编写的,但同样适用于WebDriver.

Silverlight 的测试框架。由微软。Selenium 用于网页,尝试使用 Silverlight 魔法。


编辑2:

总是有我前面提到的选项。由于上传的东西是 no input,而是一个 Silverlight 对象,并且没有用于 WebDriver 的 API 允许您使用浏览器对话框(或 Silverlight 对象),您可以试试这个:

单击 Silverlight 元素后,将弹出一个您无法控制的窗口。在我所知道的浏览器和操作系统中,您几乎可以假设在打开窗口后,光标在File name输入中。请确保这个假设在你的情况下也是正确的。

如果没有,您可以尝试按 跳到它Alt + N,至少在 Windows 上...

(Java 代码如下!我真的不知道 C#。不过,它在 Java 中工作。C# 的类与 Java 的类是类似RobotSendKeys

如果是,您可以使用Robot该类“盲目地”输入路径。在您的情况下,这将是一种方式:

driver.findElement(By.id("SWFUpload_0")).click();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_C);        // C
r.keyRelease(KeyEvent.VK_C);
r.keyPress(KeyEvent.VK_COLON);    // : (colon)
r.keyRelease(KeyEvent.VK_COLON);
r.keyPress(KeyEvent.VK_SLASH);    // / (slash)
r.keyRelease(KeyEvent.VK_SLASH);
// etc. for the whole file path

r.keyPress(KeyEvent.VK_ENTER);    // confirm by pressing Enter in the end
r.keyRelease(KeyEvent.VK_ENTER);

这很糟糕,但它应该工作。请注意,您可能需要这些:如何让 Robot 键入 `:`?并将字符串转换为 KeyEvents

于 2012-06-14T10:05:11.423 回答