【问题标题】:unable to locate the element in selenium WebDriver using C#无法使用 C# 在 selenium WebDriver 中定位元素
【发布时间】:2021-06-25 14:30:03
【问题描述】:

如何在下面的 html 标签中找到元素?

我得到了

异常:没有这样的元素:无法找到元素:

{"method":"xpath","selector":"//*[@id='divMain']/div/app-train-list/div[2]/app-modify-search/p- confirmdialog/div/div/div[3]/html/body/app-root/app-home/div[3]/div/app-train-list/div[2]/app-modify-search/p-confirmdialog /div/div/div[3]/button"}

IWebElement berthOK = driver.FindElement(By.XPath("//*[@id='divMain']/div/app-train-list/div[2]/app-modify-search/p-confirmdialog/div/div/div[3]/html/body/app-root/app-home/div[3]/div/app-train-list/div[2]/app-modify-search/p-confirmdialog/div/div/div[3]/button"));
if (berthOK.Displayed)  //*[@id='divMain']/div/app-train-list/div[2]/app-modify-search/p-confirmdialog/div/div/div[3]
berthOK.Click();

【问题讨论】:

  • 那个 xpath 看起来是绝对的,你能分享那个按钮的 HTML 吗?或者如果有 URL,那也会有帮助。
  • 我已经在该绝对路径下方评论了相对 Xpath aswel。 html 是``` ```
  • 你想点击的是OK按钮吗?
  • 是的,OK-提交按钮
  • 试试下面的解决方案

标签: javascript selenium button webdriver findelement


【解决方案1】:

我猜你想点击的是OK 按钮。

IWebElement berthOK = driver.FindElement(By.XPath("//span[text()='OK']/.."));
if(berthOK.Displayed)
berthOK.Click();

或者为了获得更高的可靠性,请确保使用 WebDriverWait:

new WebDriverWait(driver, TimeSpan.FromSeconds(3)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//span[text()='OK']/.."))).Click();

【讨论】:

  • 不再出现同样的错误,无法找到元素
  • ExpectedConditions 已过时,因此再次出现错误
  • 是也还是 irctc ?如果是,请告诉我,它在哪里?
  • 是的,它也是irctc....一旦您选择配额为老年人/下铺位,就会弹出消息并点击搜索...再次在弹出窗口中显示跨度>
  • 我可以找到那个OK 按钮。使用此代码时出现什么错误new WebDriverWait(driver, TimeSpan.FromSeconds(3)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//span[text()='OK']/.."))).Click(); - ExpectedConditions 没有过时
猜你喜欢
  • 2016-12-10
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
相关资源
最近更新 更多