init-driver.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const webdriver = require('selenium-webdriver');
  2. const { Options } = require('selenium-webdriver/chrome');
  3. const caps = webdriver.Capabilities.chrome();
  4. //设置为开发者模式,防止被各大网站识别出来使用了Selenium
  5. caps.set('chromeOptions', { 'excludeSwitches': ['enable-automation'] })
  6. //不加载图片,加快访问速度
  7. caps.set('prefs', { "profile.managed_default_content_settings.images": 2 })
  8. // 设置chrome.exe 位置
  9. const options = new Options();
  10. options.setChromeBinaryPath('C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe');
  11. const userName = '18683971105';
  12. const password = 'chengrang.'
  13. async function initDriver() {
  14. let driver = new webdriver.Builder()
  15. .setChromeOptions(options)
  16. .withCapabilities(caps)
  17. .build();
  18. driver.executeScript(()=>{
  19. Object.defineProperty(navigator, 'webdriver', {get: () => undefined});
  20. })
  21. await driver.get('https://login.taobao.com/')
  22. // await driver.get('https://login.taobao.com/member/login.jhtml?tpl_redirect_url=https%3A%2F%2Fwww.tmall.com&style=miniall&enup=true&newMini2=true&full_redirect=true&sub=true&from=tmall&allp=assets_css%3D3.0.10/login_pc.css&pms=1598493116008')
  23. const initWindow = await driver.getWindowHandle();
  24. // 模拟登录
  25. // const {loginUrl,account,password} = this.config.tmallConfig;
  26. // driver.get(loginUrl);
  27. await driver.sleep(1000)
  28. const accountEle = await driver.findElement(webdriver.By.xpath('//*[@id="fm-login-id"]'));
  29. const passwordEle = await driver.findElement(webdriver.By.xpath('//*[@id="fm-login-password"]'));
  30. const submitBtn = await driver.findElement(webdriver.By.xpath('//*[@id="login-form"]/div[4]/button'));
  31. await accountEle.sendKeys(userName)
  32. await passwordEle.sendKeys(password);
  33. await submitBtn.click();
  34. return {
  35. driver,
  36. initWindow
  37. }
  38. }
  39. initDriver();
  40. module.exports = initDriver;