【问题标题】:How to find webelement using style property如何使用样式属性查找网页元素
【发布时间】:2022-05-08 11:59:06
【问题描述】:

下面是一个元素的 HTML 代码,我想在 java 中使用 selenium webDriver 通过类和样式属性来定位这个元素

 <div class="qooxdoo-table-cell" style="left:252px;width:117px;height:24px;"/>

建议一种可以帮助硒的方法

我想使用 java 代码定位元素 即 Driver.findelement(by. ....

【问题讨论】:

  • 使用这个css选择器“div.qooxdoo-table-cell”
  • 是的,但我必须使用样式属性,因为有许多元素具有相同的类名,我不知道。

标签: selenium selenium-webdriver webdriver


【解决方案1】:

只要元素不是唯一的,您就必须同时获取这两个属性:

这是通用形式,将空字符串替换为所需的类和样式:

driver.findElement("By.xpath(//div[@class='' and style='']");

所以:

driver.findElement(By.xpath("//div[@class='qooxdoo-table-cell' and style='left:252px;width:117px;height:24px;']");

祝你好运!

【讨论】:

  • 您在第一个代码 sn-p 中的 By.xpath 之前错过了 "driver.findElement("By.xpath(//div[@class='' and style='']"); 不是 driver.findElement(By.xpath(//div[@class='' and style='']");
【解决方案2】:

如果您需要将&lt;div&gt; 与确切的style 属性匹配,您可以尝试类似

driver.findElement(By.xpath("//div[@class='qooxdoo-table-cell'][@style='left:252px;width:117px;height:24px;']"))

【讨论】:

  • 是的,但我必须使用样式属性,因为有很多元素具有相同的类名,我不知道
【解决方案3】:

另一种方法是使用cssSelector,如下:

driver.findElement(By.cssSelector("div[style='left:252px;width:117px;height:24px;']"));

【讨论】:

    【解决方案4】:

    如果您使用的是旧版本的 selenium,您也可以使用旧版本的 cssSelector。

    driver.find_elements_by_css_selector("div[style='left:252px;width:117px;height:24px;']")
    

    注意:此功能在当前版本的 Selenium 中仍然有效(带有 DeprecationWarning )

    【讨论】:

      猜你喜欢
      • 2013-11-03
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-15
      • 2011-01-10
      • 2019-09-13
      相关资源
      最近更新 更多