我想单击下面的弹出消息按钮,但是即使我正确放置了ID,也不会单击它。没有引发此类元素异常。
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;
}
答案 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;
}