【问题标题】:C# Selenium XPath , call click function of a link textC# Selenium XPath,调用链接文本的点击函数
【发布时间】:2021-07-11 21:19:38
【问题描述】:

enter image description here

我需要在这里使用 C# Selenium 点击附件图像中突出显示的“练习表格”标签。

表单的url是https://demoqa.com/forms 点击“练习表格”后,它将被重定向到https://demoqa.com/automation-practice-form

我需要通过点击而不是导航来实现这一点。

【问题讨论】:

  • 你试过了吗?
  • 我尝试通过 ID 访问,需要通过 XPath 来实现,因为该字段是动态的,有什么想法吗?
  • 始终将您的尝试添加到您的问题中。
  • UI 的屏幕截图在某些情况下很有帮助,但我们不知道该页面的 HTML 是什么样的,以便为您提供一个定位器来单击所需的元素。您需要将相关的 HTML 添加到问题中,格式正确。
  • 参见:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: c# selenium xpath


【解决方案1】:

这个 XPATH 应该可以完美运行:

//span[contains(.,'Practice Form')]//ancestor::li[@class='btn btn-light ']

简短说明:

  1. 您发现 span 包含指定的文本
  2. 你去祖先获取按钮的xpath

你需要用 selenium 找到它并使用 Selenium 的click() 这是您可以使用的 xpath 之一。 另一种选择是升级:

//span[contains(.,'Practice Form')]/..

我都喜欢。 选项 3:

//span[contains(.,'Practice Form')]//parent::li[contains(@class,'btn btn-light')]

【讨论】:

  • 如果答案有帮助,请考虑接受/投票
  • 祖先对我不起作用,但这样做://span[contains(.,'Practice Form')]//parent::li[@id='item-0']。也许这只是我的目的
  • 这不起作用:找不到元素 by: By.XPath: /span[contains(.,'Practice Form')]//ancestor::li[@class='btn btn -light ']'
  • 这很奇怪。我测试了它。你的选择也不错
  • //span[contains(.,'Practice Form')]//ancestor::li[@class='btn btn-light '] 也可以试试第二个选项。
【解决方案2】:

我不确定为什么你的不工作,但这对我来说很好:

IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://www.demoqa.com/forms");
driver.FindElement(By.XPath("//span[contains(.,'Practice Form')]//parent::li[@id='item-0']")).Click();

我需要:

https://www.demoqa.com/automation-practice-form

中间显示Student Registration表单

顺便说一句,在您原来的 cmets 中,您说您必须为此使用 XPath,因为该字段是“动态的”。它不是动态的。该元素有多个ID: item-0,也许这就是你的意思不能使用ID。但是元素本身并不是“动态的”

【讨论】:

  • 如果这没有帮助,我会投票结束这个问题,因为它缺乏细节......
【解决方案3】:

这个简单的 XPath 适合我

//span[text()='Practice Form']

【讨论】:

    【解决方案4】:

    你可以使用下面的 xpath

    //li[@class[contains(.,'btn-light')]][contains(.,'Practice Form')]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2020-04-22
      • 2017-05-27
      • 2012-11-24
      • 1970-01-01
      相关资源
      最近更新 更多