当前位置: 首页 > 知识库问答 >
问题:

Selenium MoveToElement不工作,但测试用例通过

靳祺然
2023-03-14

在下面的场景中,我试图从主菜单中选择Option4-1。已经使用了moveToElement(),click()。当我执行脚本时,用例显示为pass,但我没有看到窗口中出现的幻灯片,这是点击“Option4-1”后的预期行为。请提供您的意见。

代码:

public class CreateppPage extends PageFactory {

private WebDriver driver;
private WebDriverWait wait;
private Actions act;
/**
      Selectors section
 */

@FindBy(xpath = "//div[@class='Main Button']")
private WebElement AddMenu;
@FindBy(xpath="//li[@class='item-submenu']//span[contains(text(),'Option4')]")
private WebElement subMenu;
@FindBy(xpath="//span[contains(text(),'Option4-1')]")
private WebElement subsubMenu;

/*****************Methods section***********************/

public CreateppPage(WebDriver driver, long wait) {
    
    this.driver = driver;
    this.wait = new WebDriverWait(driver,wait);
    initElements(driver, this);
    driver.manage().timeouts().implicitlyWait(5000, TimeUnit.MILLISECONDS);
}

public void createMpp() {
    
    wait.until(ExpectedConditions.visibilityOf(AddMenu));
    act = new Actions(driver);
    try {
        Thread.sleep(2000);
        act.moveToElement(AddMenu).click().build();
        Thread.sleep(1000);
        act.moveToElement(subMenu).click().moveToElement(subsubMenu).click().build();
        Thread.sleep(10000);    
    }
    catch(Exception e) {
        System.out.println(e.getCause());
    }
}
}

共有1个答案

锺离俊雄
2023-03-14

缺少。perform()
应该是

act.moveToElement(AddMenu).click().build().perform();
Thread.sleep(1000);
act.moveToElement(subMenu).click().moveToElement(subsubMenu).click().build().perform();
Thread.sleep(10000);    
 类似资料:
  • 嗨,当我运行我的测试通过一个计划的java代码,并使用WebDriver的关闭()方法它是关闭各自的浏览器实例。但是,当我在testNG类中使用driver.close()时,在任何@后注释中,如 然后它不会关闭浏览器实例。请尝试以下两个代码段:TestNGSnippet: 简单片段: 它是一个bug在testNG。注意:driver.quit()正在工作,但我不能使用它,因为当我并行运行我的测试

  • 我有一个带有Java配置类的Spring(4.2.5)项目。这些在正常运行项目时起作用,但我无法使我的测试工作。在下面的测试中,为空。 如果添加注释,则会出现异常 其中和在和中定义,后者是基于活动配置文件选择的。 [编辑2] 经过更多的搜索,我发现了这个问题,并且在检查了我的依赖项之后,我发现我在maven依赖项下有Spring-Core-4.1.9,而且我没有在我的POM中包含一个依赖项。添加依

  • 我正在使用TestNG对我的应用程序进行单元测试和模拟。 我的问题是,当我使用方法并在中调试时,我发现是原来没有被嘲弄的那个。 经过多次调查,我使用了 导入org.testng.annotations.test; 并尝试使用Junit测试而不是TestNG。令人惊讶的是,它用JUnit(666)返回了预期的值,但用TestNG返回了(15)这是不期望的。 下面是所有类和pom文件

  • 我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行的JAR文件。 我有一个控制器: 和另一个测试类。使用Spring的MockMVC框架进行测试。这在测试中驱动MVC应用程序,就好像它在容器中运行一样, 但我犯了一个错误:

  • 我得到了一个使用Hibernate连接到数据库并检索数据的方法。当作为独立的java应用程序执行时,该方法运行良好。然而,当我试图在tomcat上部署它并作为网络服务调用时,我得到了一个错误,如下所示。我的方法是第一个也是唯一一个建立DB连接的地方,即。我没有在tomcat中定义任何数据源。 我的hibernate配置文件: 我正在使用以下hibernate模块: hibernate注释3.4.0