当前位置: 首页 > 面试题库 >

无法单击按钮,将打开文件附件对话框

方宜
2023-03-14
问题内容

我正在使用 selenium2 beta 。我试图单击按钮,这将打开文件附件对话框。但是当我单击它时,什么也没有发生。

<input class="zf" name="Passport" id="PassportUpload" type="file" onclick="return { oRequired : {} }" maxlength="524288">


driver.findElement(By.name("Passport")).click();

仅使用selenium而不是selenium2我可以轻松单击它。


问题答案:

我猜问题只是在使用Internet
Explorer时出现,因为IE和FF处理文件输入略有不同:在FF中,您可以单击按钮或字段以调用“打开”对话框,而在IE中,您可以单击按钮或 双击单击
该字段。

WebDriver使用本机事件,因此会将本机鼠标单击发送到“文件输入”控件,该控件被转换为对输入字段的单击。

它在Selenium 1中工作,因为它使用JavaScript触发事件。要使其在WebDriver中工作,您需要调用JavaScript:

WebElement upload = driver.findElement(By.name("Passport"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);

但是,以上代码不会在Firefox中使用,因此您可以使用以下代码:

WebElement upload = driver.findElement(By.name("Passport"));
if (driver instanceof InternetExplorerDriver) {
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);
} else {
    upload.click();
}


 类似资料:
  • 我有一个页面,其中包含文本,文本字段,普通表单按钮和文件上传按钮(打开文件上传对话框)。 可以访问除文件上传按钮之外的所有其他元素。我已经尝试过两者。单击()和 JavaScript可执行文件,但据我所知(视觉上)文件对话框永远不会打开。但是,没有错误消息。 页面来源: 单击按钮的C#/Selenium代码: 注意:我使用一个按钮类和一个JavaScriptActions类来处理对ChromeDr

  • 问题内容: 我有一个带有3个EditText的对话框,可用来获取ftp地址,用户名和密码。我使用.setNeutralButton创建一个“测试连接”按钮。我设法将其连接到ftp并显示结果吐司,但我不希望“测试按钮”关闭对话框。在连接测试期间如何保持对话框打开? 问题答案: 据我所知,不扩展类是不可能的。但是,使用您拥有的功能,将其单独放置并使用可能会更容易,更好。您所要做的就是为此将代码放入新代

  • 我正在编写一个包含许多按钮的程序,当我单击其中一个按钮时,我希望它打开一个包含一些txt文件信息的JTextArea。我试图将JTextArea添加到按钮中,但它没有打开任何东西。我是Java新手,所以我不知道这是否是正确的方法。 我在GUI中定义了按钮和JTextArea 这是我在public void actionPerformed(ActionEvent e)中编写的代码

  • 问题内容: 我正在尝试在应用程序中实现一项功能,当互联网连接不可用时会显示警报。该警报具有两个操作(“确定”和“设置”),每当用户单击设置时,我都希望以编程方式将其设置为电话设置。 我正在使用Swift和Xcode。 问题答案: 使用 Swift 5.1更新 斯威夫特4.2

  • 我正在尝试通过xpath,css,ID...但什么都管用。 我总是得到错误:没有这样的元素:无法定位元素 我添加了一个明确的等待,但它仍然不起作用。 你能帮帮我吗? 单选按钮