首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Xpath‘in ()’函数来定位Selenium中的Web元素?

如何使用Xpath‘in ()’函数来定位Selenium中的Web元素?
EN

Stack Exchange QA用户
提问于 2015-02-09 14:32:14
回答 4查看 91.7K关注 0票数 1

我是学习Selenium WebDriver和XPath的初学者。我正在尝试获取嵌套表的"<td>“元素,该元素包含字符串‘7-8-9’以下是HTML页面代码:

代码语言:javascript
复制
 <!DOCTYPE html>
    <head>
    <title>Sample</title>
    </head>
    <body>
    <table border = "2">
    <tbody>
    <tr>
    <td>one</td>
    <td>two</td>
    </tr>
    <tr>
    <td>three</td>
    <td>
    <table border = 1">
    <tbody>
    <tr>
    <td>1-2-3</td>
    <td>4-5-6</td>
    </tr>
    <tr>
    <td>7-8-9</td>
    <td>10-11-12</td>
    </tr>
    </tbody>
    </table>
    </td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>

这是测试代码:

代码语言:javascript
复制
WebElement  cell3 =  driver.findElement(By.xpath("//table/tbody/tr[2]/td[2]/table/tbody/tr[2]/td[contains(text() , '1-2-3'))]"));

    System.out.println(cell3.getText());

请帮帮我!谢谢

EN

回答 4

Stack Exchange QA用户

发布于 2015-02-09 14:39:56

首先,您不希望xpath做很多工作。因此,在编写xpath时,要考虑得更周到一点--您不需要在整个层次结构中找到使用xpath的元素。相对xpath对selenium来说就足够了。读取

代码语言:javascript
复制
//tbody//td[contains(text(),'1-2-3')]
票数 3
EN

Stack Exchange QA用户

发布于 2015-02-15 19:37:55

要想获得一个快速而肮脏的方法,该方法将是脆弱的,性能很差,但允许您运行测试,请在Firefox中打开页面,打开开发工具,在源查看器中找到元素,右键单击,应该有一个创建XPath查询的选项。

只是注意到问题中的“包含”,如果这很重要,那就忽略这个答案。

票数 1
EN

Stack Exchange QA用户

发布于 2016-07-15 05:58:04

我建议您只在没有xpath的情况下使用xpath

  • id
  • 类名
  • 标签名

xpath中包含的使用:

  • 安卓: driver.findElement(By.xpath("//label包含(@id,‘dv-文本框-标签-SubList’)");
  • 对于iosDriver.findElement(By.xpath("//UIAStaticText包含(@name,“MOBDish垫圈”)"));:iOS
票数 1
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/12100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档