我在Stackoverflow上使用Selenium WebDriver看到了很多关于文件上传的问题和解决方案.但是没有一个适用于以下场景.
有人给出了如下解决方案
// assuming driver is a healthy WebDriver instance
WebElement fileInput = driver.findElement(By.name("uploadfile"));
fileInput.sendKeys("C:/path/to/file.jpg");
Run Code Online (Sandbox Code Playgroud)
但我还是找不到窗口句柄我该如何处理?

我正在寻找上述方案的解决方案
请检查以下任何网站
http://www.uploadify.com/demos/
http://www.zamzar.com/
Run Code Online (Sandbox Code Playgroud) 我正在编写一个基本程序,要求用户键入一个字符串,我正在尝试使用一个Robot(来自java.awt.Robot),它将在延迟后将此消息键入另一个文档.我现在遇到的问题是我需要将我得到的任何内容转换message.charAt(i)为KeyEvent.VK_[insert Char]KeyCode.有没有更好的方法来做我想做的事情?我想我总是可以得到一个大规模的switch语句来获得适当的KeyCode,但我希望有一个更优雅的方式.我第一次想到,已经做了一段时间的python,就是创建一个字符串"KeyEvent.VK_" + message.charAt(i)并将其转换为代码,但我认为唯一的方法是使用不鼓励的反射.
我一直在寻找在Selenium 2中上传文件的解决方案.
问题是我尝试上传的网页元素有两种使用方式:拖放或点击按钮.没有字段输入框.并不是说我没有尝试使用sendKeys.我已经在按钮和所有周围元素上尝试过了.
这个问题的第二部分是我在Windows机器上编写,但自动化发生在Linux机器上.这意味着AutoIt不起作用.这是上传框的HTML.
<div class="up-target" id="up-drop-zone">
<div class="up-drop-zone-pre hidden">
<p>Please choose a folder to upload</p>
</div>
<div class="up-drop-zone-decor">
<p>Drop one or more files here</p>
<p>or</p>
<button name="uploadFile" class="upload">Select Files</button>
<input type="file" id="up-drop-zone-input" name="files[]" multiple="true">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在使用Java,并对Selenium之外的其他方法开放(但是,我只选择了maven存储库).
谢谢!
java selenium automated-tests file-upload selenium-webdriver
你如何从一个字母的字母中获取VK代码?看起来你应该能够做类似的事情javax.swing.KeyStroke.getKeyStroke('c').getKeyCode(),但这不起作用(结果为零).如果您已经拥有KeyEvent,每个人都知道如何获取密钥代码,但如果您只想将字符转换为VK整数,该怎么办?我对获取奇怪字符的FK代码不感兴趣,只有[AZ],[az],[0-9].
这个问题的背景--------我见过的所有机器人教程都假设程序员喜欢通过发送带有VK代码的按键来拼出单词:
Run Code Online (Sandbox Code Playgroud)int keyInput[] = { KeyEvent.VK_D, KeyEvent.VK_O, KeyEvent.VK_N, KeyEvent.VK_E };//end keyInput array
叫我懒惰,但即使使用Eclipse,也无法在GUI上使用TDD.如果有人碰巧知道一个类似于机器人的类,它接受字符串,然后模拟这些字符串的用户输入(我正在使用FEST),我很想知道.
无论如何从JAVA进程输入notepad.exe进程?
我使用以下循环,但它只输入第一个字符,其余为数字,任何想法?
import java.awt.*;
import javax.swing.KeyStroke;
public class test {
public static void main(String[] args) throws AWTException
{
Robot r = new Robot();
String s = "Face";
for (int i = 0; i < s.length(); i++)
{
char res = s.charAt(i);
r.keyPress(res);
r.keyRelease(res);
r.delay(1000);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出输入:F135