# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service import time import os browerName = "chromedriver" # 无界面谷歌浏览器所在位置 chromePath =str(os.getcwd())+"\"+browerName url="https://xxx.com/auth/login" email = "your email" passwd='your passwd' options = webdriver.ChromeOptions() options.add_argument('window-size=1920x3000') # 设置浏览器分辨率 options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug options.add_argument('--hide-scrollbars') # 隐藏滚动条,应对一些特殊页面 options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片,提升运行速度 options.add_argument('--headless') # 浏览器不提供可视化界面。Linux下如果系统不支持可视化不加这条会启动失败 options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错 options.add_argument('-enable-webgl') # 解决DevToolsActivePort文件不存在的报错 #options.add_argument('--disable-dev-shm-usage') # 设置浏览器分辨率 #options.add_argument('--disable-software-rasterizer') def ChromeOptionsUtil(chromePath): """ 谷歌无界面版 :param chromePath: :return: """ #设置谷歌浏览器的路径 s = Service(chromePath) # 第一个参数是谷歌options, 第二个参数是chromedriver的路径,用上面的Service包装 driver = webdriver.Chrome(options=options, service=s) #获取url driver.get(url) #等数秒,浏览器打开和网页跳转需要时间 time.sleep(3) #取ID为txtLoginCode的网页元素(用户名输入元素) elem_user=driver.find_element(By.ID,'email') #清空输入 elem_user.clear() #键入用户名 elem_user.send_keys(email) #取ID为txtPwd的网页元素(密码输入元素) elem_pass=driver.find_element(By.ID,'passwd') #清空输入 elem_pass.clear() #键入密码 elem_pass.send_keys(passwd) #取ID为btnLogin的登录按钮 elem_login=driver.find_element(By.ID,'login') try: #点击登录按钮 elem_login.click() except Exception as e: print('登录失败') """ #跳转到登录跳转的页面,有时单页无跳转登录可能有问题,推荐使用下面循环跳转寻找 driver.switch_to.window(driver.window_handles[-1]) """ #等待页面跳转加载 print('登录成功') time.sleep(3) #循环所以打开页面,找到跳转页 for handle in driver.window_handles: driver.switch_to.window(handle) #找到页面的title if 'XXX' in driver.title: break checkin= driver.find_element(By.ID,'checkin') try: #点击登录按钮 checkin.click() except Exception as e: print('签到失败') #等待签到d窗 time.sleep(3) alert=driver.find_element(By.ID,'result_ok') msg=driver.find_element(By.ID,'msg') #点击按钮 alert.click() if alert.text=="签到失败": print('签到失败') print(msg) else: print('成功签到') print(msg) #关闭浏览器,并离开 driver.close() driver.quit() return None if __name__=="__main__": ChromeOptionsUtil(chromePath)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)