首页 > 解决方案 > Selenium webdriver C#:无法识别 HTML 表单标签内的按钮元素

问题描述

完整的 HTML 代码在此处输入图像描述

我需要单击带有 id(export_but) 的按钮

可以在图像中看到表单标签的 HTML 代码,当我单击一个按钮时会弹出表单。,尝试通过 XPath、CssSelector、Id 等所有可用选项查找元素。

而且弹出窗口不是警报,所以我尝试了

driver.SwitchTo().Alert()

它不起作用。

在识别此元素时需要帮助。

标签: c#seleniumselenium-webdriverxpathcss-selectors

解决方案


根据您提供的 HTML 和您单击按钮时弹出表单的问题,要识别所需的元素,您必须诱导WebDriverWait<input>元素可点击,您可以使用以下任一定位器策略

  • 选择器

    new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("input.submit#export_but[value='Export']")));
    
  • 路径

    new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//input[@class='submit' and @id='export_but' and @value='Export']")));
    

更新

根据您的评论更新,您仍然无法找到该元素,您也可以调用ExpectedConditions方法ElementIsVisible(),如下所示:

  • 选择器

    IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(3)).Until(ExpectedConditions.ElementIsVisible(By.CssSelector("input.submit#export_but[value='Export']")));
    element.Submit();
    
  • 路径

    IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(3)).Until(ExpectedConditions.ElementIsVisible(By.XPath("//input[@class='submit' and @id='export_but' and @value='Export']")));
    element.Submit()
    

推荐阅读