2014-02-18 41 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(); 
相关问题