2016-10-04 52 views
0

我無法使用任何定位器技術找到元素。org.openqa.selenium.NoSuchElementException無法找到元素:方法「:」鏈接文本「,」選擇器「:」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); 
    } 
} 

感謝

+0

你能提供你的java代碼嗎? –

+1

第一件事 - By.linkText需要鏈接文本([相關文檔在這裏](http://www.seleniumhq.org/docs/03_webdriver.jsp#by-link-text)),而不是href參數。通過href參數查找使用xpath –

回答

1

@ user1502890,試試這個

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

OR

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

如果不解決問題嘗試在查找元素時使用WebDriverWait。

+0

非常感謝@Sandipan。得到它的工作:)乾杯 – AdiBoy

相關問題