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。
我无法使用任何定位器技术定位该元素。
到目前为止,我已经尝试过 - 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。