2014-02-18 74 views
0
quicknav"> 
<div class="status-loggedin" style="display:none;" data-component="quicknav-status-loggedin"> 
<div class="status-loggedout" data-component="quicknav-status-loggedout"> 
<a class="login-link" data-component="quicknav-login-link" rel="nofollow" title="Sign In" href="#">Sign In</a> 
<a class="create-account-link" data-component="quicknav-create-account-link" rel="nofollow" title="Create Your Account" href="#">Create Your Account</a> 
</div> 
</div> 

我試過使用下面但不工作。請幫助:如何使用Selenium和Java單擊此「登錄」鏈接?

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
driver.findElement(By.xpath("//div[contains(@id, 'userInfoQuickNav'/ title = 'Sign In'")); 
+0

當你試圖記錄這種自動化與硒發生了什麼? – admdrew

回答

0

您的XPath無效,它與您提供的HTML不匹配。你的意思是「不工作」?沒有任何反應或異常?如果有例外,請發佈確切的堆棧跟蹤。

在這裏,我可以猜測。

WebElement linkSignIn = (new WebDriverWait(driver, 30)).until(ExpectedConditions.elementToBeClickable(By.xpath(".//div[contains(@id, 'userInfoQuickNav')]//a[@title='Sign In']"))); 
linkSignIn.click(); 

您也可以使用CSS選擇器,這是更好的選擇。

By.cssSelector("[id*='userInfoQuickNav'] a[title='Sign In']") 
0

,你也可以嘗試linkText

new WebDriverWait(driver,30).until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Sign In"))).click(); 
相關問題