首页 > 解决方案 > Selemium 在网站上找不到元素

问题描述

我正在使用 C#,我无法从嵌套表的文本框中获取结算日期。你能帮我么?

我尝试了以下方法:-

driver.FindElement(By.Id("settlementdate"))
driver.FindElement(By.Name("settlementdate"));
driver.FindElement(By.Name("//*[@id='settlementdate']");
driver.FindElement(By.Name("//input[@id='settlementdate']");

请参阅下面的网站上的 html 代码

标签: c#selenium-webdriverxpathcss-selectorswebdriverwait

解决方案


要定位所需的元素,因此您必须为所需的元素诱导WebDriverWaitElementToBeClickable()您可以使用以下任一Locator Strategies

  • CssSelector

    IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("table#headtable tr td input#settlementdate[name='settlementdate']")));
    
  • XPath

    IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//table[@id='headtable']//tr//td//input[@id='settlementdate' and @name='settlementdate']")));
    

推荐阅读