C#Selenium-单击一个弹出按钮

时间:2018-11-14 12:46:26

标签: c# selenium-webdriver selenium-chromedriver

我想单击下面的弹出消息按钮,但是即使我正确放置了ID,也不会单击它。没有引发此类元素异常。

Popup Image

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 :(得分:1)

好的,对驱动程序功能进行了一些挖掘。 这解决了我的问题。

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;
        }