多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

2022新版Selenium真正绕过webdriver检测

更新时间:2022-03-11 09:54:28 作者:多测师 浏览:702

  一、什么是真正绕过浏览器检测?

  https://bot.sannysoft.com 这是chrome的真正检测网址。为什么要强调绕过webdriver属性检测?有些网址通过webdriver检测使得Selenium无法获取元素、无法控制按钮等情况。

  1、PC环境打开chrome的效果

  一般来说普通的启用webdriver即使也是会标红的,以上是打开本地chrome的检测属性。

2022新版Selenium真正绕过webdriver检测

  2、普通的启动webdriver

  上码:

  from selenium import webdriver

  class WebDriverChrome(object):

  def __init__(self):

  self.driver = self.StartWebdriver()

  def StartWebdriver(self):

  options = webdriver.ChromeOptions()

  options.add_argument("start-maximized")

  options.add_experimental_option("excludeSwitches", ["enable-automation"])

  options.add_experimental_option("useAutomationExtension", False)

  driver = webdriver.Chrome(options=options)

  return driver

  def RunStart(self):

  self.driver.get('https://bot.sannysoft.com')

  # time.sleep(10)

  # self.driver.quit()

  if __name__ == '__main__':

  Crawl = WebDriverChrome()

  Crawl.RunStart()

  3、Js注入真正绕过webdriver的检测属性

  为什么我注入的js属性有效?

  该js文件是pyppetter中绕过webdriver检测所用到的,现在直接导入到Selenium启动的chrome中。

  上码:

  from selenium import webdriver

  class WebDriverChrome(object):

  def __init__(self):

  self.driver = self.StartWebdriver()

  def StartWebdriver(self):

  options = webdriver.ChromeOptions()

  options.add_argument("start-maximized")

  options.add_experimental_option("excludeSwitches", ["enable-automation"])

  options.add_experimental_option("useAutomationExtension", False)

  driver = webdriver.Chrome(options=options)

  with open('./stealth.min.js') as f:

  js = f.read()

  driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {

  "source": js

  })

  return driver

  def RunStart(self):

  self.driver.get('https://bot.sannysoft.com')

  # time.sleep(10)

  # self.driver.quit()

  if __name__ == '__main__':

  Crawl = WebDriverChrome()

  Crawl.RunStart()

  js注入的文件[stealth.min.js]

  命名不统一要求能读取就可以了。

  获取方式:

  安装node.js

  npx extract-stealth-evasions

  就会在你执行命令的文件夹下面生成一个stealth.min.js文件。

  以上内容为大家介绍了2022新版Selenium真正绕过webdriver检测,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部