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 } } }