- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在 JavaScriptExecutor 上做一个例子。
测试站点是:http://www.anaesthetist.com/mnm/javascript/calc.htm
测试场景为:3+9=12(加法)
我写了下面的代码,但没有用。我调试了代码,结果在页面上看到了 12,但在断言点,我从 .getText() 方法获得了空值。
这是我的代码:
public class CalculatorExampleTest {
static WebDriver driver;
private static String url = "http://www.anaesthetist.com/mnm/javascript/calc.htm";
//Setup Driver
@BeforeClass
public static void setupTest() {
driver = new FirefoxDriver();
driver.navigate().to(url);
driver.manage().window().maximize();
}
@Test
public void calculatorJavaScriptTest() {
//Declare a Webdriver Wait
WebDriverWait wait = new WebDriverWait(driver, 10);
//1-) Click "9"
driver.findElement(By.cssSelector("input[type='button'][onclick='AddDigit(\\'9\\')']")).click();
//2-) Click "+"
driver.findElement(By.cssSelector("input[type='button'][onclick='Operate(\\'+\\')']")).click();
//3-) Click "3"
driver.findElement(By.cssSelector("input[type='button'][onclick='AddDigit(\\'3\\')']")).click();
//4-) Declare JavaScriptExecutor and call "Calculate()" function
JavascriptExecutor js =(JavascriptExecutor)driver;
js.executeScript("Calculate();");
//driver.findElement(By.cssSelector("input[type='button'][onclick='Calculate()']")).click();
//5-) Check result is 12?
//Wrapped Anonymous Class (Synchronization)
wait.until(textDisplayed(By.cssSelector("input[name='Display']:nth-child(1)"),"12"));
WebElement result = driver.findElement(By.cssSelector("input[name='Display']:nth-child(1)"));
assertThat(result.getText(), is("12"));
}
//Wrapped Anonymous Class
private ExpectedCondition<Boolean> textDisplayed (final By elementFindBy, final String text){
return new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver webDriver) {
return webDriver.findElement(elementFindBy).getText().contains(text);
}
};
}
//Close Driver
@AfterClass
public static void quitDriver() {
driver.quit();
}
最佳答案
由于这是 input
元素,您需要获取 value
属性值而不是文本:
WebElement result = driver.findElement(By.cssSelector("input[name=Display]"));
assertThat(result.getAttribute("value"), is("12"));
关于javascript - Selenium JavascriptExecutor 计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912979/
我在 Java 中使用 javascriptexecutor 和 selenium 并试图弄清楚网页是否可以检测到它? 使用Javascriptexecutor,似乎有一些javascript被注入(
我正在对 YouTube 视频进行自动化测试;以这个为例 - https://www.youtube.com/watch?v=AjWfY7SnMBI .我想向下滚动页面以检查评论是否加载。然而,Jav
我无法在页面上执行函数doFilterOffer(),这是以下错误missing; before 语句,下面这个语法有什么问题? if (driver instanceof Javascrip
我正在尝试使用 JavascriptExecutor 使用 XPath 查找文本元素。问题是文本有一个撇号,在这种情况下我不知道如何转义它。通常 \" 就足够了。你能帮我吗? 我已经尝试过以下选项:
下面是代码片段并出现错误,如下所示: The method executeScript(String, Object[]) in the type JavascriptExecutor is not
我想做鼠标悬停来在我的应用程序中执行某些任务。我通过使用 javascriptExecutor 做到了这一点。在进入我的应用程序之前,我尝试了一些开放的应用程序。下面是使用的代码 使用的代码 try{
抱歉,我无法将图片放入其中。因此,状态栏是浏览器左下角的小框,当您将鼠标悬停在网络元素上或页面加载时,它就会出现。 我尝试过以下方法: .getJavascriptExecutor().execute
我需要检查网站上是否有文字。根据driver.getPageSource() converts signs < to <我试图避免 getPageSource()。我需要在不同的文件中使用我的函
在 UI 上,我有一个 checkAll 按钮,它是作为 div block 下的跨度实现的。点击它变得很困难,所以我使用了 JavaScriptExcutor。我想点击两次。代码如下6行。第 3 行
我可能会遗漏一些东西,但在我检查过的每个示例中,JavascriptExecutor 接口(interface)都是通过添加来导入的 import org.openqa.selenium.Javasc
我尝试在 JavaScriptExecutor 上做一个例子。 测试站点是:http://www.anaesthetist.com/mnm/javascript/calc.htm 测试场景为:3+9=
下面是我的测试脚本。即使我正在滚动窗口,我也无法单击该元素。我也尝试使用显式等待。我收到 WebDriverException 消息说 Element is not clickable at poin
我在测试中使用selenium webdriver(JAVA),我有一个火灾事件方法,该方法应该可以重用,具体取决于传递给它的定位器。我的代码如下: public void fireEvent() {
我尝试在我的代码中使用 JavascriptExecutor,其中涉及传递 WebElement 并从中获取一些信息。我遇到了一些错误,所以我简化了它以找到问题。 String test = ((Ja
我正在尝试使用 Selenium WebDriver 中的 JavaScript 填写网页上的文本框。同事this github 在线存储库,用于填写文本框以加快速度。 当我运行该程序时,它会在 ((
嗨,当我们必须在 selenium webdriver (java) 中的 javascriptexecutor 的帮助下更改标签属性值时,我们可以像下面这样使用: JavascriptExecuto
我有一个元素列表,位于 Selenium 中,使用 By.CssSelector 方法: var contentRows = new List(); for (var i = 1; i tr:nth
所以我只是做了“如何使用 JavaScript 执行器方法处理隐藏的 Web 元素”。 但我仍然对这个方法感到困惑 public static void selectDateByJS(WebDrive
标题说明了一切,我需要一种选择 WebElement 的方法。 我正在使用 Firefox Quantum(最新测试版)。 这是我尝试过的。 String ccNumberSelector = "'#
给定一个网站,页面上有 AJAX 组件,我需要等到整个页面完全加载。 这是我使用 JavascriptExecutor 检查 document.readyState 的等待方法: public voi
我是一名优秀的程序员,十分优秀!