Selemium在网站上找不到元素

时间:2019-11-28 15:51:42

标签: c# selenium-webdriver xpath css-selectors webdriverwait

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

我尝试了以下操作:-

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

See below for the html code on the website

3 个答案:

答案 0 :(得分:0)

尝试 driver.FindElement(By.Xpath("//table/tr/td/input[@id='settlementdate']");

答案 1 :(得分:0)

要找到所需的元素,因此必须为所需的ElementToBeClickable()引入 WebDriverWait ,并且可以使用以下任一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']")));
    

答案 2 :(得分:0)

感谢您的帮助。我已经解决了这个问题。

输入框在框架中,我使用driver.SwitchTo()。Frame()切换到框架。