org.openqa.selenium.NoSuchElementException 无法定位 element:method":"link text","selector":"http://

org.openqa.selenium.NoSuchElementException Unable to locate element:method":"link text","selector":"http://

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

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

<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。