如何在Selenium中单击带有锚标记的图像或图标

时间:2018-02-28 10:31:11

标签: java css selenium xpath selenium-webdriver

我正在为gmail登录和注销编写脚本。 我已成功登录。 现在要做Logout,我必须先点击其中有Logout按钮的User图标。 我正在编写如下代码,但它不起作用:

driver.findElement(By.cssSelector("a[title=Google Account: FirstName LastName   (email@gmail.com)]")).click();

请让我知道解决方案。提前谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试“a [title = Google Account:”+ firstName + lastName +  “(”+电子邮件+“)]”

firstName,lastName和eMail是String变量。你可能应该使用@title,但我不太确定。

Look here a simple example of concatenation

答案 1 :(得分:0)

用户图标上的click(),然后点击退出文字链接上的click(),你必须诱导 WebDriverwait 表示退出的文字链接可点击,您可以使用以下代码行:

  • cssSelector

    //Click on the image    
    driver.findElement(By.cssSelector("a[role=button][title^='Google Account']")).click();
    //Click on Sign out
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a[href^='https://accounts.google.com/Logout']"))).click();
    
  • xpath

    //Click on the image    
    driver.findElement(By.xpath("//a[@role='button' and contains(@title,'Google Account') and contains(@href,'https://accounts.google.com/SignOutOptions')]")).click();
    //Click on Sign out
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(@href,'https://accounts.google.com/Logout')]"))).click();