Jes*_*ica 0 html php forms xpath behat
我正在使用Behat,我正在尝试选择一些表单元素.
我的HTML如下 - 基本上我有两个必填字段,一个是输入,一个是textarea,还有一个复选框.
<table class="table">
<thead>
<tr>
<th>Delete</th>
<th>Question</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="delete" /></td>
<td><textarea name="question" required="required"></textarea></td>
<td><input type="text" required="required" name="reference" /></td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
获取表单元素的xpath选择器是:
//table/tbody/tr/td/input
Run Code Online (Sandbox Code Playgroud)
这显然适用于输入 - 但是当我添加textarea并尝试检查它时,它找不到textarea,因为,它不是输入.
我试过这个://table/tbody/tr/td/(input or textarea)和使用"或",|等的几种变体我无法弄清楚如何指定多种类型的元素来尝试匹配.
提前致谢!:)
PHP的XPath处理器仅支持XPath 1.0,它不允许在路径步骤中进行替换.一个有效的XPath 2.0表达式
//table/tbody/tr/td/(input, textarea)
Run Code Online (Sandbox Code Playgroud)
XPath 1.0要求您提供如下所示的完整路径:
//table/tbody/tr/td/input | //table/tbody/tr/td/textarea
Run Code Online (Sandbox Code Playgroud)
或者在使用通配符节点测试时使用带名称测试的谓词:
//table/tbody/tr/td/*[local-name() = 'input' or local-name() = 'textarea']
Run Code Online (Sandbox Code Playgroud)
后一版本可能更适合性能,因为XML文件只扫描一次.
| 归档时间: |
|
| 查看次数: |
2431 次 |
| 最近记录: |