Member 11898276 Ответов: 2

Как запустить несколько тестовых классов с одним тестовым классом входа в систему в selenium webdriver


Привет, у меня есть три файла класса. В первом классе для входа в учетную запись Gmail используется только один тестовый случай. остальные классы имеют только один тестовый случай, и оба они используются для навигации по входящим и отправленным элементам. Я создал testng.xml чтобы запустить эти несколько классов. Теперь проблема в том, что когда выполняется первый класс, я могу войти в учетную запись Gmail. Но когда дело доходит до второго класса, я не могу перейти в папку "Входящие", так как не выполнял операцию входа в класс 2 и класс 3.

Поэтому он выдал мне исключение нулевого указателя ошибки. Я знаю причину, по которой получаю это исключение. Но я хочу выполнить действие входа только один раз, но оно должно быть доступно для всех классов, что означает, что когда я собираюсь выполнить класс 2 и класс 3, он не должен выдавать ошибку. Это должно продолжаться С класса 1. Как я могу достичь этой задачи.

Я много гуглил. Никто из них мне не помог. Пожалуйста, предложите мне любую идею, если она у вас есть. Я также пытался расширить свой класс. Я не получил никакого результата. Пожалуйста, направь меня, где я борюсь?

Member 13038083

Привет,
Может ли кто-нибудь поделиться предложением о том, как достичь вышеупомянутого сценария с помощью webdriver
заранее спасибо

2 Ответов

Рейтинг:
1

Graeme_Grant

Вам нужно поймать событие загрузки страницы, чтобы узнать, вошли ли вы уже в Gmail или нет, а затем запустить соответствующий код: событие загрузки страницы selenium[^]

Google имеет API Lib на большинстве современных языков для gmail и всех других своих сервисов. Почему бы не использовать это вместо этого? Гораздо проще: Обзор API Gmail  |  API Gmail  |  Разработчики Google[^]


Рейтинг:
0

Member 13038083

@Член 11898276

Это может быть достигнуто путем добавления шагов входа в @BeforeSuite, как показано ниже,и вы можете создавать различные классы и упоминать все в XML-файле TestNG.
@BeforeSuite
@Parameters ({"браузер", "имя пользователя", " пароль"})

установки общественного недействительными(строки браузера, строка имя пользователя, строка пароля) выдает исключение{
if (browser. equalsIgnoreCase ("firefox")){
драйвер = новый FirefoxDriver();
}остальное, если(браузер.equalsIgnoreCase("хром")){
Системы.методов-setproperty("с WebDriver.хром.водителем","C:\\Users\\chromedriver.exe")

публичный класс TestBase {
публичный статический драйвер WebDriver;
;
драйвер = новый ChromeDriver();
}
водитель.сделать("https://www.google.co.in/");

водитель.findElement(по.в XPath("//*[@идентификатор='стоящий']/див/див/див[1]/див[1]/а")).нажмите();
водитель.findElement(по.ИД("письмо")).помощью sendkeys(имя пользователя);
водитель.findElement(по.ИД("далее")).нажмите();
Thread. sleep(2000);
водитель.findElement(по.ИД("расширенный динамический диапазон")).sendkeys будет(пароль);
водитель.findElement(по.ИД("входа")).нажмите();
Системы.из.код println(драйвер.именно gettitle());
}


TestNG XML файл как показано ниже:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Log Suite Example" verbose="1">
<parameter name="browser" value="Chrome" />
<parameter name="username" value="Test@mailinator.com"/>
	<parameter name="password" value="Test1234"/>s
	<listeners>
		<listener class-name="pac1.ListenerClass" />
	</listeners>

	<test name="TestNG logs sample" preserve-order="true">
		<classes>
			
	       <class name="pac1.Inbox"></class>
	       <class name="pac1.SentItems"></class>
		<class name="pac1.Spam"></class>
			
				
			
		</classes>
	</test>

</suite>