硒:如何单击JavaScript按钮 - javascript

我必须编写一些用于自动测试的脚本,以检查使用flex / amf技术构建的Web应用程序的加载时间。
该测试将包括打开IE浏览器,浏览多个选项卡并测量从单击最后一个选项卡加载页面内容到关闭浏览器所需的时间。

我在Java中使用Selenium Web Driver和Junit编写了一个小脚本。脚本打开IE窗口,输入登录名和密码。我在单击“登录”按钮时遇到问题。

首先,我尝试通过findElement和By.partiallinktext查找并单击按钮,但是selenium通知我:“无法找到带有部分链接文本的元素”(ctrl + f在该站点上工作正常)。

我尝试使用moveByOffset鼠标单击并单击按钮(在用密码填充字符串之后,类Robot-'tab'和'enter')单击。所有这些都不起作用。

接下来,我找到了JavascriptExecutor-我想这可能是我的问题的答案,但是我应该如何使用此类?

该网站上的按钮:

<button style="width: 120px;" onclick="javascript:logIn();"> Login </button>

我的Java代码:

WebElement button = driver.findElement(By.partialLinkText("Login")); 
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript ("document.getElementByText(\"Login\")).click();", button); 

我在测试方面经验不足,因此,感谢您的帮助。

参考方案

不要使用JavaScript。试试这个:

String xPath = "//button[contains(.,'Login')]";
driver.findElement(By.xpath(xPath))).click();

更好,但未经测试:

// xPath to find a button whose text() (ie title) contains the word Login
String xPath = "//button[contains(text(),'Login')]";
driver.findElement(By.xpath(xPath))).click();

另请注意,https://sqa.stackexchange.com/具有有关硒的信息(等)。

Selenium:如何使RemoteDriver始终附加到当前的浏览器选项卡? - javascript

我正在开发一个Windows应用程序,该应用程序可以通过语音命令操纵浏览器。我想适当地处理用户添加一些标签并根据需要更改所选标签的情况。事实证明,RemoteDriver仅与一个选项卡一起使用,并且可以通过提供选项卡手柄将焦点切换到另一个选项卡。但是我不知道如何获取选定的选项卡句柄并始终检查选定的选项卡是否已更改,或者是否存在始终与选定的选项卡一起使用的方法…

Selenium(C#),使用JavaScript查找元素失败 - javascript

我正在尝试使用JavaScript查找网络元素。找到第一个元素。当我使用类似的代码查找另一个元素时,将获得null引用。例外。当我在开发人员工具(F12)中输入代码时,正在找到元素。这是我使用的代码:IJavaScriptExecutor js = Driver as IJavaScriptExecutor; IWebElement ChangeAccess…

Selenium Web Driver访问Jquery中的Javascript全局变量 - javascript

我正在尝试使用Selenium在Python中运行功能测试,我想在某个页面上声明的Javascript中检索全局变量的值。通常,browser.execute_script("return globalVar;")可以正常工作,但是在$(document).ready(function(){中声明了该变量,Selenium无法找到它。因此…

Selenium:在进行JavaScript调用时无需点击即可获得最终的href /链接 - javascript

我正在抓取一长串的html链接(在ToS下允许)。但是,所有链接都是javascript调用(href =“ javascript :;”),因此使用get_attribute()获取链接将不起作用。我不想实际单击所有链接,因为它会为每个链接下载一个较大的pdf文件是否有可能获得最终调用的href /链接,而无需实际单击链接并下载文件?谢谢! 参考方案 是的…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…