简体   繁体   English

无法使用 selenium webdriver 在 Gmail 中单击撰写按钮

[英]Unable to click on compose button in Gmail using selenium webdriver

My code is:我的代码是:

public class LoginGmail{    
public static void main(String[] args) throws InterruptedException  {   
    System.setProperty("webdriver.chrome.driver","D:/selenium/chromedriver_win32/chromedriver.exe"); 

     WebDriver fd= new ChromeDriver();
     fd.get("https://www.google.com/intl/en_in/gmail/about/");
        Thread.sleep(5000);
        fd.manage().window().maximize();
        WebElement e1=fd.findElement(By.xpath("html/body/nav/div/a[2]"));
        e1.click();
        WebElement username = fd.findElement(By.xpath(".//*[@id='identifierId']"));
        username.sendKeys("sharmi.paul87@gmail.com");

        WebElement username_click = fd.findElement(By.xpath(".//*[@id='identifierNext']/content/span"));
        username_click.click();

        WebDriverWait wait = new WebDriverWait(fd,30);
        wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@aria-label=\"Enter your password\"]")));
       WebElement password= fd.findElement(By.xpath("//input[@aria-label=\"Enter your password\"]"));
               password.sendKeys("pramilapaul");
        WebElement password_click = fd.findElement(By.xpath(".//*[@id='passwordNext']/content"));
        password_click.click();
    /*    --------------------------*/
        //fd.findElement(By.xpath("//div[contains(text(),'COMPOSE')]")).click();

        //WebElement button=fd.findElement(By.xpath("//div[contains(@id,':ir')]"));
        //WebElement buttton=fd.findElement(By.xpath("//div[@gh='cm']"));*/
        //WebElement button=fd.findElement(By.cssSelector(".aic div[role='button']"));
 //  button.click();

HTML code: HTML代码:

COMPOSE 撰写

in the above" / -- /" any xpath is not working.在上面的“/ -- /”中,任何 xpath 都不起作用。 Can anyone help in this?任何人都可以帮忙吗? The xpaths are showing unable to locate element or compound classes are prohibited errors. xpath 显示无法定位元素或复合类被禁止错误。

This xpath "//div[@id=':ii']/div/div" OR .//div[normalize-space()='COMPOSE'] click the compose button for me.这个 xpath "//div[@id=':ii']/div/div" OR .//div[normalize-space()='COMPOSE']为我点击撰写按钮。

Try this尝试这个

driver.findElement(By.xpath("//div[@id=':ii']/div/div"));

Or或者

driver.findElement(By.xpath(".//div[normalize-space()='COMPOSE']"));

I wrote the given below program in WATIR and checked it,it works, you can use the same locators in your program and you can execute it.我在 WATIR 中编写了下面给出的程序并检查了它,它可以工作,你可以在你的程序中使用相同的定位器,你可以执行它。

b.goto("www.gmail.com")
b.a(:text, "Sign In").click
b.element(:id, "identifierId").send_keys "sharmi.paul87@gmail.com"
b.element(:css, "#identifierNext > content.CwaK9 > span.RveJvd.snByac").click
b.element(:name, "password").send_keys "pramilapaul"
b.element(:css, "span.RveJvd.snByac").click
b.element(:xpath, "//div[@id=':ii']/div/div").click

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM