C # Selenium - Нажмите на всплывающую кнопку - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу нажать на кнопку «Под всплывающим сообщением», но даже если я правильно разместил идентификатор, он не нажимается. Выдает, что такой элемент не найден, исключение.

Всплывающее изображение

webDriver.Navigate().GoToUrl(url);
        try
        {
            await Task.Delay(1000);
            Logger.LogGenericText("Trying to Removed all Nicknames Cache...");
            webDriverwait.Until(d => d.FindElement(By.ClassName("namehistory_link"))).Click();
            webDriverwait.Until(d => d.FindElement(By.Id("NamePopupClearAliases"))).Click();
            webDriverwait.Until(d => d.FindElement(By.Id("btn_green_white_innerfade"))).Click();
        }
        catch (Exception ex)
        {
            Logger.LogGenericText(ex.ToString());
            return;
        }

1 Ответ

0 голосов
/ 14 ноября 2018

Ладно, покопались в функциях драйвера. Это решило мою проблему.

webDriver.SwitchTo().ActiveElement().FindElement(By.XPath("/html/body/div[3]/div[2]/div/div[2]/div[1]/span")).Click();

Полный рабочий код, если кто-то не может понять:

webDriver.Navigate().GoToUrl(url);
        try
        {
            await Task.Delay(1000);
            Logger.LogGenericText("Trying to Removed all Nicknames Cache...");
            webDriverwait.Until(d => d.FindElement(By.ClassName("namehistory_link"))).Click();
            await Task.Delay(2000);
            webDriverwait.Until(d => d.FindElement(By.XPath("//*[@id='NamePopupClearAliases']"))).Click();
            await Task.Delay(2000);
            webDriver.SwitchTo().ActiveElement().FindElement(By.XPath("/html/body/div[3]/div[2]/div/div[2]/div[1]/span")).Click();
            Logger.LogGenericText("All Nickname List Cleared.");
        }
        catch (Exception ex)
        {
            Logger.LogGenericText(ex.ToString());
            return;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...