90 lines
2.2 KiB
JavaScript
90 lines
2.2 KiB
JavaScript
const { Builder, By, Key, until, support } = require('selenium-webdriver')
|
|
const chrome = require('selenium-webdriver/chrome');
|
|
const assert = require('assert')
|
|
const cookie = require('cookie');
|
|
const path = require("path");
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
|
async initDriver({ url, cookies2 }) {
|
|
console.log('initDriver开始初始化')
|
|
let options = new chrome.Options();
|
|
options.addArguments('--User-Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36"')
|
|
options.addArguments('--no-sandbox')
|
|
|
|
if (process.platform === 'linux') {
|
|
options.addArguments('--headless')
|
|
}
|
|
|
|
options.addArguments('--Cache-Control="no-cache"')
|
|
options.addArguments('--Host="huodong.taobao.com"')
|
|
|
|
|
|
console.log('系统', process.platform)
|
|
let service = null
|
|
// lunix 系统
|
|
if (process.platform === 'linux') {
|
|
service = new chrome.ServiceBuilder(path.join(__dirname, './drive/chromedriver'));
|
|
}
|
|
else if (process.platform === 'win32') {
|
|
service = new chrome.ServiceBuilder(path.join(__dirname, './drive/chromedriver.exe'));
|
|
}
|
|
|
|
const driver = new Builder().forBrowser('chrome').setChromeService(service).setChromeOptions(options).build();
|
|
|
|
driver.get(url)
|
|
|
|
let cookies = `cookie2=${cookies2};`
|
|
|
|
var cookieObj = cookie.parse(cookies);
|
|
let keys = Object.keys(cookieObj)
|
|
for (let i = 0; i < keys.length; i++) {
|
|
let key = keys[i]
|
|
let value = cookieObj[key]
|
|
await driver.manage().addCookie({ name: key, value, domain: '.taobao.com' })
|
|
}
|
|
|
|
console.log('initDriver初始化完成')
|
|
return driver
|
|
},
|
|
|
|
|
|
|
|
async checkForm(driver) {
|
|
|
|
try {
|
|
|
|
let formCheckText = await driver.findElement(By.xpath("//div[@id=\'global-modal\']/div/div/div/h2")).getText()
|
|
|
|
let formCheckRules = []
|
|
let formCheckRulesDom = await driver.findElements(By.css("#global-modal>div p"))
|
|
for (let e of formCheckRulesDom) {
|
|
let text = await e.getText();
|
|
formCheckRules.push(text)
|
|
}
|
|
|
|
|
|
if (formCheckText === "请检查表单信息") {
|
|
return { formCheckText, formCheckRules }
|
|
}
|
|
|
|
|
|
return null
|
|
}
|
|
|
|
catch (e) {
|
|
return null
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} |