Selenium webdriver HTML单元驱动程序的Xpath
我正在尝试获取HTMLUnitDriver测试的xpath以查找用户名Selenium webdriver HTML单元驱动程序的Xpath,selenium-webdriver,xpath,Selenium Webdriver,Xpath,我正在尝试获取HTMLUnitDriver测试的xpath以查找用户名 <div class="form-group" data-reactid=".0.1.0.0"> <label class="control-label" data-reactid=".0.1.0.0.$label"> <span data-reactid=".0.1.0.0.$label.1">Username</span></label> <input
<div class="form-group" data-reactid=".0.1.0.0">
<label class="control-label" data-reactid=".0.1.0.0.$label"> <span data-reactid=".0.1.0.0.$label.1">Username</span></label>
<input type="text" label="Username" class="form-control" data-reactid=".0.1.0.0.1:$input"></div>
但它们似乎都不起作用。我在Groovy Spock中使用Selenium Geb。我缺少什么?你可以试试这个,它会有用的
driver.findElement(By.xpath("//label[@data-reactid='.0.1.0.0.$label']//span[@data-reactid='.0.1.0.0.$label.1'][contains(text(),'Username')]"));
您正在使用Geb,但没有使用任何Geb语法。页面元素应在页面对象的内容块中定义,如下所示:
class MyPage extends Page {
static content = {
username $("span", text: contains("Username"))
//alternatively do it this way
username { find("span", text: "Username") }
}
}
请尝试
//输入[@label='Username']
@PankajJaju,该操作不起作用,可能是因为您的输入标记未关闭,因此您的xml解析器抛出错误。你能确认HTML的结构是否正确吗?Rushby,是的,你是对的,我没有使用Geb语法。谢谢你指出这一点。这成功了!
class MyPage extends Page {
static content = {
username $("span", text: contains("Username"))
//alternatively do it this way
username { find("span", text: "Username") }
}
}