aardio 文档
aardio 范例: driver
//chrome.driver
import chrome.driver;
/*
创建 chromeDriver 对象,支 Chrome,Edge(Chromium),Supermium 等相同内核浏览器。
自动检测 chromeDriver 版本,并在必要时自动下载匹配版本的chromeDriver。
*/
var driver = chrome.driver();
//协议文档 https://w3c.github.io/webdriver
//更多用法 https://bbs.aardio.com/forum.php?mod=viewthread&tid=22544
//排除参数,不显示"正受到自动测试软件的控制",老版本 Chrome 可能会有更大的弹框,新版没问题
//driver.removeArguments("--enable-automation")
//添加 Chrome 启动参数
//driver.addArguments("--start-maximized")
//driver.addArguments("--incognito") //无痕模式
//driver.addArguments("--headless") //无痕模式,看不到界面
/*
Chrome 启动参数参考:
https://peter.sh/experiments/chromium-command-line-switches/
*/
//创建会话,打开chrome浏览器,调用参数仅用于演示( 可以省略 )。
var browser = driver.startBrowser( {
loggingPrefs = { browser = 'ALL', performance = 'ALL', };
perfLoggingPrefs = {
enableNetwork = true,
enablePage= false,
enableTimeline = false
}
});
//打开网页
browser.go("http://www.baidu.com")
//查找文本输入框,返回的 DOM 对象也可以使用ququerySelector继续查找子节点
var ele = browser.querySelector("body").querySelector("#kw");
//在网页输入文本,并发送按键。
ele.sendKeys( "ChromeDriver","ENTER" )
/*
可用键名定义于 chrome.driver.keys ,键名与 key,key.VK 库基本兼容。
如果要将键名设为普通文本,可改用 ele.setValue( "ChromeDriver","ENTER" )
*/
//调用 JS,并且可以返回值(也可以返回 DOM 节点对象)
var searchButton = browser.doScript(`
//可以使用arguments访问aardio传来的参数
return arguments[0].querySelector("#su");
`
,browser.querySelector("body")//可以传任意个调用参数给JS,还可以直接传DOM节点对象
)
//JS 返回的 DOM 节点对象也可以操作控制
searchButton.click();
//等待网址
browser.waitUrl("ChromeDriver")
//调用 CDP 命令
var ret,err = browser.cdp("Network.getCookies",{urls={"https://www.baidu.com"}},);
var cookies = ret[["value"]];
//打开新窗口(标签页)
browser.doScript("window.open('https://httpbin.org/cookies')");
//关闭原来的窗口(标签页)
browser.close();
//等待网址
browser.waitUrl("httpbin");
//修改 cookie
var ret,err = browser.cookie( {
cookie = { name = "GUID",value = "09031171412667840400",domain="httpbin.org"}
} )
//driver.startBrowser() 指定 loggingPrefs, perfLoggingPrefs
//var log = browser.se.log(type="performance"); //获取日志
browser.refresh();
Markdown 格式