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 格式