selenium - 通过 Xpath 获取元素 (Geb)

标签 selenium groovy spock geb

我在通过 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/

相关文章:

javascript - Selenium 服务器错误 : Unable to create new service chromedriverservice

c# - 在 .NET 的 UI 测试自动化框架中实现剧本模式/ Actor 模型

groovy - IDEA中Groovy中的不良颜色

java - Grails 应用程序中的类加载器内存泄漏

grails - Grails Spock测试特定异常

javascript - Selenium v​​ia Java - 单击复选框与手动单击不同的响应

python - 检测到通过 ChromeDriver 启动的 Chrome 浏览器

groovy - 在 mailgun 中使用 groovy httpbuilder 发布参数

groovy - 测试使用 System.console() 的 Groovy 类

grails - 无法模拟服务的返回值