gpt4 book ai didi

java - Selenium 测试用例从主菜单中选择子菜单

转载 作者:行者123 更新时间:2023-12-02 01:38:18 25 4
gpt4 key购买 nike

我正在尝试编写一个 Selenium 测试用例,用于从菜单栏中选择平均值,然后也选择子菜单。

请在下面找到我的菜单结构。

enter image description here

请找到我的以下代码,该代码能够选择Admin菜单,之后我不确定如何选择Default及其子菜单DSD Defaults.

我正在使用 selenium webDriver。

import org.openqa.selenium.WebDriver;

特征文件

When I click on admin menu
When I click on defaults
And I click on dsd defaults

步骤文件

@When("^I click on admin menu$")
public void openAdminMenu() {
systemDefaultPage.clickAdmin();
}

Java 文件

@Autowired
public BasePage(TestWebDriver driver) {
super(driver);
}

@FindBy(id = "Admin")
private WebElement adminLink;

public void clickAdmin() {
waitForAngularRequestsToFinish();
assertThat("Admin Link is Not Present", adminLink, isDisplayed());
driver.click(adminLink);
}

* 更新 1 *

public class TestWebDriver {
@Getter
private WebDriver driver;
private static final long defaultTimeout = 100;

@Autowired
public TestWebDriver(WebDriver driver) {
this.driver = driver;
}

public void wait(WebElement webElement) {
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(webElement.sendKeys(Keys.RETURN))); // getting message on this line.
}
}

BasePage.java

public void clickAdminDefaults() {
waitForAngularRequestsToFinish();
assertThat("Admin Defaults Link is Not Present", adminDefaultsLink, isDisplayed());
driver.click(adminDefaultsLink);
driver.wait(adminDefaultsLink);
}

获取 WebDriverWait 实现的以下消息

The method elementToBeClickable(By) in the type ExpectedConditions is not applicable for the arguments (void)

最佳答案

简单地,您可以尝试以下代码:步骤文件

    @When("^I click on defaults$")
public void clickDefauts() {
systemDefaultPage.clickDefaults();
}

@When("^I click on dsd defaults$")
public void clickDsdDefauts() {
systemDefaultPage.clickDsdDefaults();
}

Java 文件

    @FindBy(id = "defaults")
private WebElement defaultsLink;

public void clickDefaults() {
waitForAngularRequestsToFinish();
assertThat("defaults Link is Not Present", defaultsLink, isDisplayed());
driver.click(defaultsLink);
}

@FindBy(id = "DSDdefaults")
private WebElement dsdDefaultsLink;

public void clickDsdDefaults() {
waitForAngularRequestsToFinish();
assertThat("dsdDefaults Link is Not Present", dsdDefaultsLink, isDisplayed());
driver.click(dsdDefaultsLink);
}

注意:我为 defaultsLink 和 dsdDefaultsLink 添加了虚拟定位器。更新它并执行场景。

关于java - Selenium 测试用例从主菜单中选择子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57505606/

25 4 0