相关疑难解决方法(0)

属性值中的XPath通配符

我有以下XPath来匹配类span的属性:

//span[@class='amount']
Run Code Online (Sandbox Code Playgroud)

我想匹配class属性为"amount"的所有元素,但也可能有其他类.我以为我能做到这一点:

//span[@class='*amount*'] 
Run Code Online (Sandbox Code Playgroud)

但这不起作用......我怎么能这样做?

c# xpath html-agility-pack

27
推荐指数
2
解决办法
2万
查看次数

在XPath中测试text()节点与字符串值

我有一个节点如下:

<span class="portal-text-medium">Office Hours</span>
Run Code Online (Sandbox Code Playgroud)

对于我使用的XPath

//span[text()='Office Hours']
Run Code Online (Sandbox Code Playgroud)

这应该工作,但它永远不会.我可以使用*contains(text(),'Office Hours')]*但是找不到完全匹配,我必须验证没有"*".这不是它唯一不适合我的时间.我之前看到它有用,所以我不知道出了什么问题.任何的想法?

是的,我可以,并且确实使用,starts-with但它并不完全相同.

html xml xpath

8
推荐指数
1
解决办法
6044
查看次数

Xbr &lt;br/&gt;之后的文本

希望通过此代码块获得$ 2.00的XPath:

<td class="undefined" colspan="6">
   <table class="history-bill-payments" cellspacing="0" cellpadding="0" border="0" align="center" width="99%">
<thead>
<tbody>
   <tr>
      <td valign="top">04/19/2016</td>
      <td valign="top" style="text-align:right; height:">
         $3.00
         <br/>
         $2.00
      </td>
Run Code Online (Sandbox Code Playgroud)

我尝试了这些但无济于事

$I->CanSeeElement("//table[contains(tbody/tr[2]/td/table/tbody/tr/td[2]/following-sibling::br)]"); 
$I->CanSeeElement("//table[contains(tbody/tr[2]/td/table/tbody/tr/td[2]/preceding-sibling::br/text(),'$2.00')]"); 
$I->CanSeeElement("//table[contains(tbody/tr[2]/td/table/tbody/tr/td[2]/following-sibling::br/text(),'$2.00')]");
Run Code Online (Sandbox Code Playgroud)

在Firefox中使用firepath,我得到了这个XPath

html / body / div [4] / div [2] / div / div / div / div / div / table / tbody / tr [2] / td / table / tbody / tr / td [2]

我能够得到$ 3.00的xpath

$I->CanSeeElement("//table[contains(tbody/tr[2]/td/table/tbody/tr/td[2]/text(),'$3.00')]");
Run Code Online (Sandbox Code Playgroud)

html xml xpath codeception

6
推荐指数
2
解决办法
7624
查看次数

xpath:如何不匹配以下数据

查看源代码,我的表格数据格式如下:

  <tr class="even">
    <td>apple</td>
    <td>pear</td>
    <td>orange</td>
    </tr>
    <tr class="odd">
    <td>apple</td>
    <td>pear</td>
    <td>&nbsp</TD>
    </tr>
  <tr class="even">
    <td>apple</td>
    <td>pear</td>
    <td>orange</td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

如何<td>在所有行中匹配包含 ?

xpath

4
推荐指数
1
解决办法
2219
查看次数

contains()在XPath中做了什么?

我有两个几乎相同的表,唯一的区别是第一个中的输入标记:

表格1

  <table>
    <tbody>
      <tr>
        <td>
          <div>
            <input type="text" name="" value=""/>
          </div>
        </td>
      </tr>
    </tbody>
  </table>
Run Code Online (Sandbox Code Playgroud)

表#2

  <table>
    <tbody>
      <tr>
        <td>
          <div></div>
        </td>
      </tr>
    </tbody>
  </table>
</body>
Run Code Online (Sandbox Code Playgroud)

当我使用这个XPath时,//table//tbody//tr[position()=1 and contains(.,input)]它返回两个表的第一行,而不仅仅是我期望的第一个表第一行.

但是,这个XPath //table//tbody//tr[position()=1]//input只返回input第一个.

那么,我做错了什么?为什么input两个表都相同?我.在某种程度上误用了这里吗?

xml xpath

4
推荐指数
1
解决办法
216
查看次数

为什么 XPath contains(text(),'substring') 无法按预期工作?

假设我有一段这样的 HTML:

<a>Ask Question<other/>more text</a>
Run Code Online (Sandbox Code Playgroud)

我可以匹配这段XPath:

//a[text() = 'Ask Question']
Run Code Online (Sandbox Code Playgroud)

或者...

//a[text() = 'more text']
Run Code Online (Sandbox Code Playgroud)

或者我可以使用点来匹配整个内容:

//a[. = 'Ask Questionmore text']
Run Code Online (Sandbox Code Playgroud)

这篇文章.描述了(dot) 和 之间的区别text(),但简而言之,第一个返回单个元素,而后者返回一个元素列表。但这对我来说有点奇怪。因为 whiletext()可以用来匹配列表中的任意一个元素,但对于 XPath 函数来说,情况并非如此contains()。如果我这样做:

//a[contains(text(), 'Ask Question')]
Run Code Online (Sandbox Code Playgroud)

...我收到以下错误:

错误: contains() 的第一个参数所需的基数为一或零

为什么它text()在使用完整匹配(等于)时有效,但在部分匹配(包含)时不起作用?

html xml xpath

3
推荐指数
2
解决办法
3585
查看次数

Selenium XPath:查找带有文本或其他文本的元素

我试图找出一种基于两个文本字符串使用 XPath 定位元素的方法。有问题的元素可以有文本 A 或文本 B,两者都是有效的,并且我需要根据该文本断言该元素是可见的。所以我需要一个像“//*...[contains(text(), 'A')] OR [contains(text(), 'B')]”这样的 XPath 表达式。这可能吗?这必须使用 XPath 1.0,因为它适用于 Selenium Webdriver。

我还没有找到任何方法来做到这一点,所以我目前正在检查 try-catch 中的第一个字符串,然后断言第二个字符串。

c# selenium xpath text

0
推荐指数
1
解决办法
4142
查看次数

标签 统计

xpath ×7

xml ×4

html ×3

c# ×2

codeception ×1

html-agility-pack ×1

selenium ×1

text ×1