我是学习者。 我正在尝试使用Selenium Webdriver自动执行Gmail的注销功能但无法这样做..
注销时有两个阶段,首先单击顶部的右侧链接,如果出现该框,则单击“注销”。我无法这样做。
<span id="gbi4t" style="max-width: 76px; text-align: left;">Mahmood Ali</span>
<a id="gb_71" class="gbqfbb" href="?logout&hl=en&hlor" onclick="gbar.logger.il(9,{l:'o'})" role="button" target="_top">Sign out</a>
这是我的xpath
//*[@id="gbi4t"] -> Clicking that top to get the logout pop up
//*[@id="gb_71"] -> To logout the gmail application
我试过像
driver.findElement(By.id("gbi4t")).click(); OR
driver.findElement(By.xpath("//*[@id='gbi4t']")).click();
driver.findElement(By.id("gb_71")).click(); OR
driver.findElement(By.xpath("//*[@id='gb_71']")).click();
有些想法吗?
答案 0 :(得分:0)
实际上<span>
未被识别为元素。
您需要在其上使用<a id="gbg4" ...>
至click()
,等待弹出窗口并点击<a id="gb_71" class="gbqfbb" ...>
即可退出。
我让你编码,因为你需要实践:P
告诉我发生了什么事。
建议:
我建议您使用cssSelector()
。
cssSelector()
比其他更好。
但有时你会使用xpath来查找一个“取消”作为内部文本的元素(例如:<a>cancel</a>
)
答案 1 :(得分:0)
您还可以尝试以下操作:
driver.find_element(:id, "gbgs4dn").click
driver.find_element(:id, "gb_71").click
这对我有用。
答案 2 :(得分:0)
这段代码对我来说当然有用:
// (after logging to google.com)
WebDriverWait wait = new WebDriverWait(driver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("gbi4t")));
//open overlay
driver.findElement(By.id("gbi4t")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("gb_71")));
//press logout
driver.findElement(By.id("gb_71")).click();
答案 3 :(得分:0)
Heres一个解决的例子::
package testme;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class testexample {
public static WebDriver driver;
public static WebElement element;
public static void main(String args[]) throws InterruptedException {
//setting the chrome driver
System.setProperty("webdriver.chrome.driver", "C:/Users/workspace/Downloads/chromedriver.exe");
driver = new ChromeDriver();
driver.get("http://www.gmail.com");
element =driver.findElement(By.linkText("Sign in"));
element.click();
Thread.sleep(1000);
element = driver.findElement(By.id("Email"));
element.sendKeys("yourusername@gmail.com");
element = driver.findElement(By.id("Passwd"));
element.sendKeys("yourpassword");
element.submit();
Thread.sleep(1000);
//click on the logout link step 1
element = driver.findElement(By.xpath("//*[@id='gb']/div[1]/div[1]/div/div[3]/div[1]/a"));
element.click();
// click on actual logout button step 2
element = driver.findElement(By.id("gb_71"));
element.click();
//closing the webdriver window after successful completion of the test
driver.close();
}
}