【问题标题】:Selenium, Java - Unable to locate elementSelenium,Java - 无法定位元素
【发布时间】:2020-07-05 22:35:19
【问题描述】:

我是测试自动化的初学者。 我想自动化一个演示网站,但是我无法找到元素 My Account -> Login 网址:https://phptravels.net/home 我试图通过 CSSseletor、Xpath 等找到它,但我总是收到错误 -org.openqa.selenium.NoSuchElementException

public class LandingPage {

    public WebDriver driver;

    By myAccount = By.className("dropdown dropdown-login dropdown-tab");
    By login = By.xpath("//a[@class='dropdown-item active tr']");
    By navBar = By.id("mobileMenuMain");


    public LandingPage(WebDriver driver) {
        this.driver = driver;
    }

    public WebElement getMyAccount() {
        return driver.findElement(myAccount);
    }
    public WebElement getNavigation() {
        return driver.findElement(navBar);
    }

    public WebElement getLogin() {
        return driver.findElement(login);

-------------------------


@RunWith(Cucumber.class)
public class stepDefinition extends Base {

    @Given("^Initialize the browser with Chrome$")
    public void initialize_the_browser_with_chrome() throws Throwable {
        driver = initializeDriver();
    }

    @And("^Navigate to the \"([^\"]*)\" Website$")
    public void navigate_to_the_something_website(String strArg1) throws Throwable {
        driver.get(strArg1);

    }

   @And("^Click on My Account link in Home Page to land on sign in page$")
    public void click_on_My_Account_link_in_home_page_to_land_on_sign_in_page() throws Throwable {

       LandingPage landingPage = new LandingPage(driver);
       landingPage.getMyAccount().click();
       landingPage.getLogin().click();

       /*if (landingPage.getPopUpSize() > 0) {
           landingPage.getPopUp().click();
       }*/

   }
    @When("^User enters (.+) and (.+) and logs in$")
    public void user_enters_and_and_logs_in(String email, String password) throws Throwable {
        LoginPage loginPage = new LoginPage(driver);
        loginPage.getEmail().sendKeys(email);
        loginPage.getPassword().sendKeys(password);
        loginPage.getLoginbtn().click();
    }

    @Then("^Verify that user is successfully logged in$")
    public void verify_that_user_is_successfully_logged_in() throws Throwable {
        PortalHomePage p = new PortalHomePage(driver);
        Assert.assertTrue(p.getDemoUser().isDisplayed());
    }

    @And("^Close the browsers$")
    public void close_the_browsers() throws Throwable {
        driver.quit();
    }
}

有人可以帮忙吗?

【问题讨论】:

  • 请正确格式化您的代码,使其更易于阅读。它部分格式化为代码,部分格式化为文本
  • 试试这个 xpath://*[@class='dropdown-item active tr']

标签: java selenium xpath css-selectors cucumber


【解决方案1】:

按 ID,您会遇到问题,因为 id dropdownCurrency 在页面上使用了两次,并且按类别搜索它应该是 .dropdown.dropdown-login.dropdown-tab

【讨论】:

  • 我还是找不到:no such element: Unable to locate element: {"method":"css selector","selector":".\.dropdown\.dropdown\-login\.dropdown\-tab"}
  • 开头有多余的点吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
  • 2022-01-06
  • 2021-06-21
  • 1970-01-01
相关资源
最近更新 更多