我正在尝试自动执行Google云端硬盘中的上传文件功能。
用于传递参数的元素以高度-0px隐藏。
用户操作均不会使该元素可见。因此,我需要一种变通方法来在不可见的元素上单击。
<input type="file" style="height: 0px; visibility: hidden; position: absolute; width: 340px; font-size: inherit;" multiple=""/>
上述元素的xpath是-
//*[@class='goog-menu goog-menu-vertical uploadmenu density-tiny']/input
我在用
WebDriver.findElement(By.xpath(<xpath>).sendKeys(<uploadFile>)
例外-
org.openqa.selenium.ElementNotVisibleException
我尝试使用JavascriptExecutor。但是找不到确切的语法。
试试这个:
WebElement elem = yourWebDriverInstance.findElement(By.xpath("//*[@class='goog-menu goog-menu-vertical uploadmenu density-tiny']/input"));
String js = "arguments[0].style.height='auto'; arguments[0].style.visibility='visible';";
((JavascriptExecutor) yourWebDriverInstance).executeScript(js, elem);
上面的那堆将改变文件输入控件的可见性。然后,您可以继续执行文件上传的常规步骤,例如:
elem.sendKeys("<LOCAL FILE PATH>");
请注意,通过更改输入字段的可见性,您可以干预要测试的应用程序。注入脚本来改变行为是侵入性的,在测试中不建议这样做。
问题内容: 嗨,我想知道如何使用Selenium WebDriver单击隐藏元素和/或禁用元素。 我知道使用selenium1可以执行以下操作: 这将起作用,但是对于selenium2(WebDriver),则不起作用。我不想使用jquery来启用或显示隐藏字段或JavaScript。这是因为大多数测试都使用xpath。 还是我只需要保留旧的selenium,就可以单击隐藏的字段? 问题答案: 使
问题内容: 我有一个显示一些记录的网格。当我单击记录并检查该元素时,将显示该元素已隐藏但在网格中可见。 我的HTML是: 上面的代码在检查时是隐藏的,但在网格中可见。 selenium代码: 问题答案: 首先说该元素存储在对象中,然后编写以下代码以单击该隐藏元素:
问题内容: 我有一个元素,只有将鼠标悬停在该元素上时,该元素才可见。 我已经编写了以下代码,将其放在面板上,以便该元素可见。 现在,我尝试单击它,但它说-ElementNotVisibleError:量角器中的元素不可见错误。 基本方案是,我想将鼠标悬停在面板上,然后单击隐藏的元素,因为直到将元素悬停在该元素上才可见。 问题答案: 以下代码为我工作。
我正在尝试测试智能GWT应用程序。我有一个关键问题。我无法使用以下命令单击元素: 是回报 找不到xpath“/html/body/div[10]/div[3]/div/div/div[1]/div/form/table/tbody[2]/tr[4]/td/table/tbody/tr/td[2]/span/img”(Capybara::ElementNotFound) 代码如下: 这个img上有很
问题内容: 我正在尝试使用复选框和过滤器选项创建多选下拉列表。我试图隐藏列表,但我在外面单击却无法弄清楚。感谢你的帮助。 http://plnkr.co/edit/tw0hLz68O8ueWj7uZ78c 问题答案: 请注意,打开第二个弹出窗口(在具有多个选择的页面上)时,您的解决方案(问题中提供的Plunker)不会关闭其他框的弹出窗口。 通过单击一个框打开一个新的弹出窗口,单击事件将始终停止。
我创建了一个包含三个项目的菜单:menu1、menu2、Menu3。 我希望能够单击菜单内的每个按钮,并显示相关的容器。 这已经管用了。 我似乎无法使相关的在再次单击按钮时隐藏起来。 我的代码: null null