Это то, что я пытаюсь сделать в Gmail.Невозможно щелкнуть значок «Настройка» в Gmail с веб-драйвером selenium
- www.gmail.com
- Войти с помощью действительного пользователя (если не существует создания фиктивного пользователя)
- Нажмите Входящие
- Нажмите на первое письмо
- Нажмите на Compose Email.
- Отправляйте письмо на ту же учетную запись электронной почты.
- Нажмите на значок настроек в правом верхнем углу
- Got на автоответчике о Генеральном закладка Параметры
- Выберите автоответчиком положение.
Я могу нажать на 1-е сообщение электронной почты и выбрать адрес электронной почты, а затем нажать на кнопку электронной почты, чтобы отправить электронное письмо. Проблема, с которой я сталкиваюсь, не может нажать на значок настроек. Элемент скрыт, я не могу его щелкнуть. Я попробовал его с помощью customized-Xpath, а также попытался щелкнуть его с помощью координат. Но это не работает для меня. Пожалуйста, помогите мне в этом.
import org.openqa.selenium.By;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Gmail1 {
public static void main(String[] args) throws InterruptedException {
// Login to browser
WebDriver driver= new FirefoxDriver();
driver.get("https://www.gmail.com");
driver.manage().window().maximize();
System.out.println("Browser opned");
driver.findElement(By.xpath("//*[@id='Email']")).sendKeys("Use your UserId");
System.out.println("Entered Email id");
driver.findElement(By.xpath("//*[@id='next']")).click();
System.out.println("Clicked on Next");
Thread.sleep(3000);
driver.findElement(By.xpath("//*[@id='Passwd']")).sendKeys("Use your password");
System.out.println("Entered the Password");
driver.findElement(By.xpath("//*[@id='signIn']")).click();
System.out.println("Welcome to gmail");
Thread.sleep(5000);
driver.findElement(By.xpath("//*[@id=':3d']")).click();
System.out.println("Clicked on email");
Thread.sleep(3000);
String emailid = driver.findElement(By.xpath("//span[@class='go']")).getText();
emailid=emailid.substring(emailid.indexOf("<")+1, emailid.indexOf(">"));
System.out.println(emailid);
driver.findElement(By.xpath("//*[@id=':it']/div/div")).click();
System.out.println("Clicked on Compose mail");
driver.findElement(By.xpath("//*[@name='to']")).sendKeys(emailid);
System.out.println("Entered the TO Email Address");
driver.findElement(By.xpath("//*[@name='subjectbox']")).sendKeys("My Mail");
System.out.println("Entered Subject of the email");
driver.findElement(By.xpath("//*[@role='button' and .='Send']")).click();
System.out.println("Clicked on send button");
clickSetting(driver);
}
public static void clickSetting(WebDriver driver){
//Tried with Coordinates (doesn't work)
Point point = driver.findElement(By.xpath("//div[@class='G-Ni J-J5-Ji'] [@gh ='s']/*[1]")).getLocation();
System.out.println(point.x + "-" + point.y);
Actions builder = new Actions(driver);
builder.moveByOffset(point.x, point.y).click().build().perform(); //Getting Error.
//Tried with Action Class (doesn't work)
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement SettingWheel=driver.findElement(By.xpath("//*[@data-tooltip='Settings' and @role='button']"));
WebElement SettingsLink=driver.findElement(By.xpath("//*[@role='menuitem']/div[.='Settings']"));
wait.until(ExpectedConditions.elementToBeClickable(SettingWheel));
Actions actions = new Actions(driver);
actions.moveToElement(SettingWheel).moveToElement(SettingsLink).click().build().perform();//Getting Error.
Thread.sleep(2000);
System.out.println("Clicked On Setting");
}
Сообщение об ошибке: - «Элемент не видимых в данный момент, и поэтому не может быть взаимодействовали с (ПРЕДУПРЕЖДЕНИЕ: Сервер не предоставляет никакой информации StackTrace)»
Заранее спасибо.
Перейти на другой сайт. Держитесь подальше от google – Saifur
У меня нет возможности попробовать его на другом сайте. Мне нужно сделать это только в gmail. Пожалуйста, помогите мне. –