org.openqa.selenium.NoSuchElementException无法找到element:method“:”link text“,”selector“:”http://

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了org.openqa.selenium.NoSuchElementException无法找到element:method“:”link text“,”selector“:”http://相关的知识,希望对你有一定的参考价值。

我无法使用任何定位器技术找到该元素。

到目前为止,我已经尝试过By.linkText,By.cssSelector和By.xpath,但无济于事。当我尝试使用不同的java类登录时会发生这种情况。但是,如果我使用以下选择器在一个java类中编写所有代码(通过createAccount = By.cssSelector(“a.createAccount”);),则不会看到此错误。

<a class="createAccount" href="https://www.***.com/registration/" tabindex="9">
<span class="fontIconCreateAccount mdxFont" aria-hidden="true">
<span class="icon icon--pep">
<span class="icon__add-button"></span>
</span>
</span>
Create Account
</a>

会很感激的建议。

编辑:添加了相应的Java代码

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;

public class LoginPage {
    private WebDriver driver;

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

    By createAccount = By.linkText("https://***.com/registration/");

    //By createAccount = By.cssSelector("a.createAccount");
    //By createAccount = By.xpath(".//*[@id='signInBottomInformationContainer']/a");
    public WebElement createAccountLink(){
        return driver.findElement(createAccount);
    }
}

谢谢

答案

@ user1502890,试试这个

By createAccount = By.linkText("Create Account");

要么

By createAccount = By.partialLinkText("Create Account");

如果这不能解决问题,请尝试在查找元素时使用WebDriverWait。

以上是关于org.openqa.selenium.NoSuchElementException无法找到element:method“:”link text“,”selector“:”http://的主要内容,如果未能解决你的问题,请参考以下文章