【问题标题】:How to click on element in div which has class name and text如何单击具有类名和文本的div中的元素
【发布时间】:2019-03-26 02:15:24
【问题描述】:

如下图所示

我无法点击具有 div 类和文本的元素

我尝试过使用包含文本和前面的内容。

private IWebElement Claimcontact_Insured_No => 
   FindElement(By.XPath("//div[contains(text(),'No')]/preceding::div[@class='mat-button-toggle-label-content']"));

我得到结果:找不到元素

【问题讨论】:

  • 源代码:
    没有
  • 请添加该元素对应的整个html。
  • 你能检查一下元素的 html 中的任何地方是否存在任何 iframe 吗?
  • 没有 iframe。我可以单击带有 div 类的元素。看看图片。@SameerArora

标签: selenium-webdriver


【解决方案1】:

如上所述,html 结构中不存在 iframe。
所以,试试下面的 xpath 来点击No 按钮:

FindElement(By.XPath("(//div[@class='mat-button-toggle-label-content'])[2]"));

检查网站和元素的html后更新答案。
该元素也有唯一的 id,所以不要使用 xpath,id 应该像这样使用:

FindElement(By.ID("mat-button-toggle-2"));

【讨论】:

  • 错误:元素与 By : By.XPath: //div[@class='mat-button-toggle-label-content' and contains(text(),'No')] not found
  • 还是不行。补充一点。当我试图将代码粘贴到记事本++中时,No前后有一些空格
  • 是的,但contains 负责空间。再次更新了我的 xpath。虽然它没有优化,但试试这个,让我知道它是否有效,然后我会尝试优化它。
  • 代码正在单击另一个元素,即没有选项的单选按钮
  • 而且代码是点击默认选择:FindElement(By.XPath("//div[@class='mat-button-toggle-label-content']"));跨度>
猜你喜欢
  • 2017-03-22
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-10
  • 1970-01-01
相关资源
最近更新 更多