我在通过 Xpath 获取 Element 时遇到问题。我使用 Spock 和 Geb。 我有 HTML:
<form class="form" style="display: block;">
<div class="crm-field">
<div class="req label">
<span class="required">*</span>
Моё Имя:
</div>
<div class="value">
<input class="signup" type="text" style="background-color: rgb(255, 255, 255);">
</div>
</div>
<div class="crm-field">
<div class="req label">
<span class="required">*</span>
Login:
</div>
<div class="value">
<input class="signup" type="text" style="background-color: rgb(255, 255, 255);">
</div>
</div>
<div class="crm-field">
<div class="req label">
<span class="required">*</span>
Мой E-mail:
</div>
<div class="value">
<input class="signup" type="text" style="background-color: rgb(255, 255, 255);">
</div>
</div>
<div class="crm-field">
<div class="req label">
<span class="required">*</span>
Пароль:
</div>
<div class="value">
<input class="signup" type="text" style="background-color: rgb(255, 255, 255);">
</div>
</div>
我需要获取<input class="signup" type="text" style="background-color: rgb(255, 255, 255);">
用于写入字符串。但Geb只使用CSS搜索。
请帮助我获取所有输入以及如何将文本写入输入。
我用于获取元素:
driver.findElement(By.xpath("//html/body/div[3]/div[2]/form/div[2]/div[2]/input")) << arg
但是我没有得到。
最佳答案
Geb 不支持 XPath 表达式,但您仍然可以使用 Geb 的 indexed css selectors 获取所需的元素。请注意,这些索引是基于 0 的,这与 XPath 的基于 1 的索引相反。例如:
$('form.form > div', 1).find('input')
编辑
实际上,现在是Geb supports XPath expressions 。请记住,它尚未发布,仅在最新快照 0.10.1-SNAPHOT
中可用。
关于selenium - 通过 Xpath 获取元素 (Geb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753134/