Сценарий Selenium завершается ошибкой после использования сценария Auto IT для обработки всплывающих окон на основе Windows - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть веб-сайт, который запрашивает имя пользователя и пароль через всплывающее окно аутентификации.Итак, я использовал AutoIt для обработки всплывающего окна, и оно работает (вводит имя пользователя и пароль).

После проверки учетных данных домашняя страница моего веб-сайта открывается через промежуток времени 10-15 секунд..

Вот что я делаю:

class Class1
{
FirefoxDriver d;
static void Main(string[] args)
        {
d = new FirefoxDriver();
d.Manage().Window.Maximize();
d.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(60);
d.Url = "www.example.com";
Process.Start(@"C:\Users\Documents\AutoIt Scripts\Authentication_FireFox.exe");

//Now I would like to click on an element on my homepage which I am not able to do bcos of some exceptions.

WebDriverWait wait = new WebDriverWait(d, TimeSpan.FromSeconds(30));
 wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(d.FindElement(By.XPath("//span[@title='Start search']"))));
d.FindElement(By.XPath("//span[@title='Start search']")).Click();
        }

Исключение 1:

enter image description here

Затем я добавилThread.Sleep (20000);после Process.Start ();Это дало мне новое исключение.

Исключение 2: enter image description here

Я использую FireFox v62 и последнюю версию драйвера Firefox.AutoIT v 3.3.14.5

Можете ли вы помочь мне найти решение.Заранее спасибо.

1 Ответ

0 голосов
/ 28 сентября 2018

Сделано, чтобы веб-браузер выдавал предупреждение, чтобы веб-браузер фокусировался после обработки всплывающей аутентификации.

Изменения кода:

Process.Start(@"C:\Users\Documents\AutoIt Scripts\Authentication_FireFox.exe");
Thread.Sleep(30000);
((IJavaScriptExecutor)d).ExecuteScript("alert('Test')");
d.SwitchTo().Alert().Accept();
d.FindElement(By.XPath("//span[@title='Start search']")).Click(); // now this element is getting clicked.
...