【问题标题】:Selenium Webdriver, can not select elementSelenium Webdriver,无法选择元素
【发布时间】:2014-05-01 20:06:30
【问题描述】:

我有一个这样的html

<td class="select", dataId="12o312p3o">   <span>
     <a>something</a>   </span> </td>

还有很多相同的 td-s,只是 dataID 不同。我想通过 dataID 选择 td,但找不到方法。 我正在使用硒网络驱动程序。这是可能的吗?如果是,我该怎么做?

【问题讨论】:

  • 您的 Html 本身有问题。 &lt;td class="select" data-Id="12o312p3o"&gt; &lt;span&gt;&lt;a&gt;something&lt;/a&gt; &lt;/span&gt; &lt;/td&gt;
  • HTML 是正确的,可能是我输入错误。问题是,我是否可以通过 dataID 选择 td。

标签: selenium webdriver


【解决方案1】:

查找具有data-id 且值为12o312p3o 的元素:-

通过 Css 选择器-

driver.findElement(By.cssSelector("td[data-id=12o312p3o]"));

通过 X-Path-

driver.findElement(By.xpath("//td[@data-id='120312p30']"));

查找具有data-id 且值为12o312p3oclassselect 的元素:-

通过 Css 选择器-

driver.findElement(By.cssSelector("td.select[data-id=12o312p3o]"));

通过 X-Path-

driver.findElement(By.xpath("//td[@data-id='120312p30' and @class='select']"));

【讨论】:

    【解决方案2】:

    如果上面提供的解决方案不起作用,您可以编写一些自定义 websdriver + Java 代码如:

    WebElement e = driver.findElement(By.xpath("//td[@class='select']"));
    String s = e.getAttribute("dataId");
    if(s.equals("12o312p3o"){
    //do something
    } else {
    //do something different
    }
    

    【讨论】:

    • 谢谢大家。问题出在一个 iframe 中,我没有看到 :) 我的错。再次感谢您。
    【解决方案3】:

    当然可以。使用xpath如下:

    WebElement elem = driver.findElement(By.xpath("//td[@data-Id='12o312p3o']"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2021-07-04
      • 2016-04-15
      • 1970-01-01
      相关资源
      最近更新 更多