我有一个页面,其中包含文本,文本字段,普通表单按钮和文件上传按钮(打开文件上传对话框)。
可以访问除文件上传按钮之外的所有其他元素。我已经尝试过两者。单击()和 JavaScript可执行文件,但据我所知(视觉上)文件对话框永远不会打开。但是,没有错误消息。
页面来源:
<a class="bttngrey file-input-container bttn-small" data-bind="enable: !uploading() " style="margin-top: 10px; ... data-original-title="Add attachment">
<i class="fa fa-cloud-upload">...</i>
<input type="file" data-bind="upload: addAttachments, enable: !uploading()"> == $9
单击按钮的C#/Selenium代码:
注意:我使用一个按钮类和一个JavaScriptActions类来处理对ChromeDriver实例的调用,而不是直接调用它。我希望代码片段有意义。
Button.FindByXPath("/html/body/div[1]/div[2]/overlay--master/div/div/overlay-lightbox/div/div[3]/content-placeholder/a").Click();
JavaScriptActions.ButtonClickXPath("/html/body/div[1]/div[2]/overlay--master/div/div/overlay-lightbox/div/div[3]/content-placeholder/a");
public class Button {
public static IWebElement FindByXPath (string bttnxpath) {
return GCDriver.Instance.FindElement(By.XPath(bttnxpath));
}
}
public class JavascriptActions {
public static void ButtonClickXPath (string xpath) {
GCDriver.JSClickXPath(xpath);
}
}
public class GCDriver {
....
....
....
public static void JSClickXPath (string xpath) {
IWebElement icon = Instance.FindElement(By.XPath(xpath));
Actions ob = new Actions(Instance);
ob.Click(icon);
IAction action = ob.Build();
action.Perform();
}
....
....
....
}
单击按钮的方法似乎都不起作用。即使它们适用于页面上的其他“正常”按钮。我尝试JavaScriptExecutor的原因是,我之前遇到过这样一个情况,普通的Selenium方法无法点击类似这样的按钮(打开文件对话框),但JavaScriptExcutor是这样的。
奇怪的是,这两种方法都没有任何错误。然而,当我看网页时,我没有看到点击和打开对话框。测试会立即结束。在点击按钮前后添加一个明确的等待也没有帮助。
有什么想法吗?如有必要,我将详细阐述;不总是清楚需要显示多少代码才能清楚问题/问题。
请尝试以下操作:(使用驱动程序类实例)
Actions actions = new Actions(Driver.Instance);
actions.MoveToElement(Driver.Instance.FindElement(By.XPath(xpath)));
actions.Click();
actions.Build().Perform();
只需在驱动程序类中创建一个方法,并从代码中的相关位置调用它。
你可以使用SendKeys来发送文件路径,但是我通常的做法是使用AutoIt库来处理窗口上的操作,因为它不是一个浏览器/web元素。
请尝试下面的代码,在我的项目中使用类似的代码:
IWebElement元素=new WebDriver等待(_browserWindow,TimeSpan.FromSeconds(20))。直到(ExpectedConditions.ElementToBeClickable(By.CssSelector("[class='fa fa-cloud d-上传']")));
发送完整的文件路径以附加它
要素SendKeys(“文件路径”);
此外,根据发布的HTML代码,上传按钮包含复合类名。所以请参考复合类元素定位器:不支持复合类名。考虑搜索一个类名并过滤结果
问题内容: 我正在使用 selenium2 beta 。我试图单击按钮,这将打开文件附件对话框。但是当我单击它时,什么也没有发生。 仅使用selenium而不是selenium2我可以轻松单击它。 问题答案: 我猜问题只是在使用Internet Explorer时出现,因为IE和FF处理文件输入略有不同:在FF中,您可以单击按钮或字段以调用“打开”对话框,而在IE中,您可以单击按钮或 双击单击 该
我有如下所示的按钮(图像和HTML),并试图单击它。 Selenium无法定位它--我尝试通过xpath和ID进行定位。 XPath:
本文向大家介绍C++采用openfilename打开文件对话框用法实例,包括了C++采用openfilename打开文件对话框用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++采用openfilename打开文件对话框用法,分享给大家供大家参考。具体方法如下: 这里需要注意,有的时候会因为没设置nMaxFile,而一直不出现对话框。 具体功能代码如下: 希望本文所述对大家的C+
我正在使用Selenium WebDriver和PhantomJs(C#)。在此之前,我使用FireFox而不是PhantomJs,并以以下方式上传了一个文件: 我的问题: 然而,当我使用PhantomJS时,这将崩溃。 在我看来,对于许多使用PhantomJS+Selenium的人来说,这是一个常见的问题,这让我想知道为什么这个bug还没有得到修复。
问题内容: 如何使文件选择器的按钮文本国际化?例如,此代码向用户呈现的内容: 问题答案: 它通常由浏览器提供并且很难更改,因此解决该问题的唯一方法是CSS / JavaScript hack,
我是Java的初学者。我正在使用netbeans 7.3 IDE的GUI编辑器制作一个简单的文本编辑器。我面临的主要问题是无法保存/打开文件。我已经创建了“保存”按钮。当我删除文件选择器时,它是一个嵌入在java窗口中的正常打开的文件对话框,没有任何功能。我还尝试在单击save按钮(在源代码视图中)时创建一个新的jFileChooser,但它不起作用 简而言之,我需要一个简单的打开/保存对话框。当