Phantom JS 点击按钮 - 等待页面完全加载
Phantom JS Clicking Buttons - wait for page fully load
我正在尝试使用 Phantom JS 登录网站,这样我就可以掌握供应商的价格。
正在输入用户名和密码,但未按下登录按钮。
如果登录按钮是 而不是
登录表单没有用于提交的 ID、NAME 或 ACTION。
如果有人知道解决方案,我将不胜感激
谢谢
幻影JS
//username entered automatically on load
document.getElementById("password").value="1234";
document.getElementById('btn-login').click();
登录表单
<form onsubmit="return false;" method="post">
<fieldset class="customer-login">
<div class="form-group">
<label for="name">Email Address</label>
<input type="username" class="form-control" id="username" placeholder="Enter your email address">
</div>
<div class="form-group">
<label for="name">Password</label>
<input type="password" class="form-control" id="password" placeholder="Enter your password">
</div>
<button type="submit" id="btn-login" class="btn btn-primary btn-block">
Log In
</button>
<hr>
<button type="button" id="btn-signup" class="btn btn-default btn-block">
Sign Up
</button>
<button type="button" id="btn-reset" class="btn btn-default btn-block">
Forgotten your password?
</button>
</fieldset>
</form>
result after running script
更新
document.getElementsByClassName('btn btn-primary btn-block')[0].click();
但是没有任何作用 returns 并且它重定向,它在返回登录主页之前停止程序。
有没有人有让程序等待的解决方案(当它不知道它的重定向时。)?
我试过了
do { phantom.page.sendEvent('mousemove'); } while (page.loading);
提交表单时,没有任何返回,所以程序停止了。
程序没有等待页面加载,因为重定向需要几秒钟才能开始。
告诉它移动鼠标,直到 URL 主页发生变化,给浏览器足够的时间来改变它。然后告诉它等待页面完成加载允许页面在抓取内容之前完全加载。
page.evaluate(function () {
document.getElementsByClassName('btn btn-primary btn-block')[0].click();
});
do { phantom.page.sendEvent('mousemove'); } while (page.evaluate(function()
{
return document.location != "https://www.bestwaywholesale.co.uk/";
}));
do { phantom.page.sendEvent('mousemove'); } while (page.loading);
我正在尝试使用 Phantom JS 登录网站,这样我就可以掌握供应商的价格。
正在输入用户名和密码,但未按下登录按钮。
如果登录按钮是 而不是
登录表单没有用于提交的 ID、NAME 或 ACTION。
如果有人知道解决方案,我将不胜感激
谢谢
幻影JS
//username entered automatically on load
document.getElementById("password").value="1234";
document.getElementById('btn-login').click();
登录表单
<form onsubmit="return false;" method="post">
<fieldset class="customer-login">
<div class="form-group">
<label for="name">Email Address</label>
<input type="username" class="form-control" id="username" placeholder="Enter your email address">
</div>
<div class="form-group">
<label for="name">Password</label>
<input type="password" class="form-control" id="password" placeholder="Enter your password">
</div>
<button type="submit" id="btn-login" class="btn btn-primary btn-block">
Log In
</button>
<hr>
<button type="button" id="btn-signup" class="btn btn-default btn-block">
Sign Up
</button>
<button type="button" id="btn-reset" class="btn btn-default btn-block">
Forgotten your password?
</button>
</fieldset>
</form>
result after running script
更新
document.getElementsByClassName('btn btn-primary btn-block')[0].click();
但是没有任何作用 returns 并且它重定向,它在返回登录主页之前停止程序。 有没有人有让程序等待的解决方案(当它不知道它的重定向时。)?
我试过了
do { phantom.page.sendEvent('mousemove'); } while (page.loading);
提交表单时,没有任何返回,所以程序停止了。 程序没有等待页面加载,因为重定向需要几秒钟才能开始。
告诉它移动鼠标,直到 URL 主页发生变化,给浏览器足够的时间来改变它。然后告诉它等待页面完成加载允许页面在抓取内容之前完全加载。
page.evaluate(function () {
document.getElementsByClassName('btn btn-primary btn-block')[0].click();
});
do { phantom.page.sendEvent('mousemove'); } while (page.evaluate(function()
{
return document.location != "https://www.bestwaywholesale.co.uk/";
}));
do { phantom.page.sendEvent('mousemove'); } while (page.loading);