2014-10-15 3 views
-2

Команда нажатия кнопки не работает. Он находит кнопку, но не нажимает кнопку. При нажатии на кнопку должна быть открытая страница, которая открывается в Gmail.Нажатие кнопки «Создать» в Gmail с использованием Selenium WebDriver

Все ниже код пытается нажать на кнопку в новой странице контактов из Gmail https://mail.google.com/mail/u/0/1#contact/new

Проверки Элемента DIV тег является ДИВЫМ TabIndex = «0» ария-метка = «Отправить» данные-подсказку = «Email» aria-disabled = «false» style = "- moz-user-select: none;" id = ": 2l" class = "TI J-J5-Ji TI-ax7 TI-Js-IF L3" role = "button"> div class = "J-J5-Ji TI-J3 Nz NS">/div>/DIV>

   System.out.println("Finding Button"); 
     driver.findElement(By.id(":2l")).click(); 

     System.out.println("printing button"); 
     System.out.println(driver.findElement(By.id(":2l"))); 

     System.out.println("Finding button 2"); 
     WebElement composeBtn = driver.findElement(By.cssSelector("div[class='T-I J-J5-Ji T-I-ax7 T-I-Js-IF L3']")); 

     System.out.println("Clicking button 2"); 
     composeBtn.click(); 

     System.out.println("Button 2 Clicked"); 
     System.out.println(composeBtn.toString()); 

     System.out.println("Finding button 3"); 
     WebElement cBtn = driver.findElement(By.cssSelector("div[class= 'J-J5-Ji T-I-J3 Nz NS']")); 

     System.out.println("Clicking button 3"); 

     cBtn.click(); 

Пожалуйста, дайте мне знать, если вы можете помочь мне определить эту кнопку

ответ

1

Когда я смотрю на этой странице, в ссылке, которую вы предоставили, кнопка Compose неактивна и не кликабельны. Если программа, пытающаяся щелкнуть кнопку, которую пользователь не может щелкнуть, по-прежнему будет терпеть неудачу. Selenium не будет и не может взаимодействовать с объектами, с которыми пользователь не может взаимодействовать (например, скрытые поля и в этом случае кнопки с серым цветом).

+0

К сожалению, я думаю, я должен отметить, что вам нужно, чтобы добавить новый контакт кнопки больше не будет недоступна. Затем, когда вы нажимаете кнопку, я объясняю, что новый контакт уже добавлен в отправляемом вами электронном письме, и вам просто нужно обновить тему и тело письма и отправить. –

0

Я успешно отправил Эмиля через автоматизацию селена с использованием учетной записи Gmail с приведенным ниже сценарием.

WebDriver driver = new FirefoxDriver(); 
String baseUrl = "http://www.google.co.in/"; 
selenium = new WebDriverBackedSelenium(driver, baseUrl); 
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
driver.findElement(By.xpath("//div[@id=':jb']/div[@class='z0']/div")).click(); // Compose 
selenium.type("//div[@class='wO nr l1']//textarea[@name='to']",  "[email protected]"); // For To 

selenium.type("//div[@class='aoD az6']//input[@name='subjectbox']", "Wanted to SAY HI"); // For Subject 
selenium.type("//div[@class='Ar Au']/div[@class='Am Al editable LW-avf']", "Hi Vikram");// For Message body 
selenium.click("//div[@class='J-J5-Ji']/div[@class='T-I J-J5-Ji aoO T-I-atl L3']"); //send 
1

Этот метод использует содержит.

package testCase; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class GmailFileUpload 
{ 
    WebDriver driver = null; 
    WebElement element = null; 

    @Before 
    public void setUp() throws Exception 
    { 
     File file = new File("G:\\Selenium\\All_Jars\\chromedriver.exe"); 
     System.setProperty("webdriver.chrome.driver", file.getAbsolutePath()); 
     driver = new ChromeDriver(); 
     driver.manage().window().maximize(); 
    } 

    @Test 
    public void test() throws InterruptedException, AWTException 
    { 
     driver.get("https://www.google.co.in"); 
     driver.findElement(By.linkText("Sign in")).click(); 

     driver.findElement(By.id("Email")).sendKeys("[email protected]"); 

     driver.findElement(By.id("Passwd")).sendKeys("password"); 



     driver.findElement(By.id("signIn")).click(); 
     driver.findElement(By.linkText("Gmail")).click(); 

     Thread.sleep(5000); 
     //click on compose 
     //driver.findElement(By.xpath("//div[@class='T-I J-J5-Ji T-I-KE L3'] ")).click(); 

     driver.findElement(By.xpath("//div[contains(text(),'COMPOSE')]")).click(); 

     Thread.sleep(5000); 
     driver.findElement(By.xpath("//textarea[@name='to']")).sendKeys("[email protected]"); 

     driver.findElement(By.xpath("//input[@name='subjectbox']")).sendKeys("[email protected]"); 

     Thread.sleep(5000); 

     element = driver.findElement(By.xpath("//div[@class='Ar Au']//div")); 
     element.click(); 
     element.sendKeys("Hi Avinash"); 
     Thread.sleep(3000); 
} 
    @After 
    public void teardown() throws Exception 
    { 
     driver.quit(); 
    } 
} 
1

Я нахожу кнопку отправки, как это:

driver.FindElement(By.XPath("//div[contains(text(),'Send')]")).Click(); 

После этого вы можете сделать бросить курить. Просто дополнительные всплывающие попросит вас подтвердить выезд счет:

driver.Navigate().GoToUrl("https://mail.google.com/mail/logout?hl=en"); 
Смежные вопросы