无法点击 href
Cannnot click a href
您好,我有以下代码
<!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>
我使用的守夜人代码是这个,错误是它无法定位元素。在其他网站上这会很好用,但在这里它就像 bugs
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 提供了很多帮助,所以这里是 Nighwatch.js 使用 Xpath
单击此元素
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();
}
};
试试下面的代码。
您在点击提交后申请一些等待,它会得到解决。
我 运行 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();
首先很抱歉使用此部分发表评论,但我没有足够的声誉来这样做。
@Kishan Patel:你能看看我的问题吗?
您好,我有以下代码
<!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>
我使用的守夜人代码是这个,错误是它无法定位元素。在其他网站上这会很好用,但在这里它就像 bugs
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 提供了很多帮助,所以这里是 Nighwatch.js 使用 Xpath
单击此元素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();
}
};
试试下面的代码。 您在点击提交后申请一些等待,它会得到解决。 我 运行 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();
首先很抱歉使用此部分发表评论,但我没有足够的声誉来这样做。
@Kishan Patel:你能看看我的问题吗?