您好我有以下代码
<!DOCTYPE html>
<html lang="en">
<head>
<body class="skin-blue sidebar-mini">
<div class="wrapper">
<header class="main-header">
<aside class="main-sidebar">
<section class="sidebar" style="height: auto;">
<div class="user-panel"> </div>
<br>
<br>
<br>
<ul class="sidebar-menu">
<li class="treeview">
<a href="../user/account">
<i class="fa fa-edit"></i>
<span>Basic Information</span>
</a>
</li>
<li class="treeview">
<a href="../admin/myproperties">
<i class="fa fa-list"></i>
<span>My Hotel</span>
</a>
</li>
</ul>
</section>
</aside>
我使用的nightwatch代码是这个,错误是它无法找到元素。在其他网站,这将工作正常,但在这里就像它的buggs
module.exports = {
tags: [''],
'extranet' : function (client) {
client
.url('www.somesite.com')
.waitForElementVisible('body', 1000)
// --Log In Form //
//.click('a[class="btn btn-block btn-social btn-lg btn-google"]')
.setValue('input[name=email]', 'email@email.com')
.setValue('input[name=password]', 'password')
.click('button[type="submit"]')
.click('a[href="../user/account"]')
解: Kishan Patel帮了很多,所以这里是使用Xpath点击这个元素的Nighwatch.js
module.exports = {
tags: [''],
'extranet' : function (client) {
client
.url('www.somesite.com')
.waitForElementVisible('body', 1000)
.setValue('input[name=email]', 'email@email.com')
.setValue('input[name=password]', 'password')
.click('button[type="submit"]')
.waitForElementVisible('section[class="sidebar"]', 10000)
.useXpath()
.click('html/body/div[1]/aside/section/ul/li[1]/a')
.pause(5000)
.end();
}
};
答案 0 :(得分:1)
试试以下代码。 您在点击提交后应用了一些等待,它将得到解决。 我成功地在JAVA中运行了相同的代码。
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("http://example.com");
//登录用户名
driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[3]/input")).sendKeys("e-mail");
//密码
driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[4]/input")).sendKeys("password");
//点击提交
driver.findElement(By.xpath("html/body/div[1]/div/div[2]/form/div[5]/div/button")).click();
//等待元素可见
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("html/body/div[1]/aside/section/ul/li[1]/a")));
//点击href =“../ user / account”
driver.findElement(By.xpath("html/body/div[1]/aside/section/ul/li[1]/a")).click();
答案 1 :(得分:0)
首先很抱歉使用此部分发表评论,但我没有足够的声誉这样做。 @Kishan Patel:你能看看我的问题吗? Loop is not working properly - nightwatch