2014-02-27 76 views
0

我是Selenium WebDriver的新手,我正在嘗試編寫一個簡單的腳本來登錄到雅虎郵箱,然後註銷。我已經設法讓登錄部分工作,但我一直無法讓登出部分工作。我收到以下錯誤:Selenium WebDriver雅虎郵箱退出錯誤

Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate 
element: {"method":"link text","selector":"Sign Out"} 

到目前爲止我嘗試了以下三兩件事: 1)

driver.findElement(By.linkText("Sign Out")).click(); 

2)

driver.findElement(By.partialLinkText("Sign Out")).click(); 

3)

WebElement element2 = driver.findElement(By.linkText("Sign Out")); 
element2.submit(); 

我基本上得到th在每種情況下都是相同的錯誤。下面粘貼了我的代碼。任何幫助,將不勝感激。

FirefoxDriver driver = new FirefoxDriver(); 
driver.get("https://login.yahoo.com/config/login_verify2?.intl=ca&.src=ym"); 
driver.manage().window().maximize(); 

WebElement element = driver.findElement(By.id("username")); 
element.sendKeys("[email protected]"); 

driver.findElement(By.id("passwd")).sendKeys("mypassword"); 
element.submit(); 
Thread.sleep(40000); 

driver.findElement(By.linkText("Sign Out")).click();  
Thread.sleep(40); 
+1

是否用戶成功登錄和你看到的退出鏈接?你也可以分享註銷鏈接元素的HTML代碼嗎? – Amey

回答

3

enter image description here

Mouse over 
new Actions(driver).moveToElement(driver.findElement(By.id("yucs-profile_text"))).perform(); 

click Sign Out 
driver.findElement(By.xpath("//a[contains(text(),'Sign Out')]")).click(); 
0

使用下面的腳本,它將工作:

Actions actions = new Actions(driver); 
WebElement m1 = driver.findElement(By.linkText("Sign out")); 
actions.moveToElement(m1); 
actions.click().build().perform();