一、基础介绍 浏览器载入一个页面时,页面内的元素可能是在不同的时间载入的,这会加大定位元素的困难程度,为了让Selenium可以智能地等待网页加载完成,就需要使用“WebDriverWait”和“EC” 基本格式 WebDriverWait(driver,10).until(EC.presence_of_element_located()) 例子 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome(r'C:\\tools\\chromedriver.exe') driver.get("https://exercise.kingname.info/exercise_advanced_ajax.html
最近已经实现了图书资源、音乐资源站点的自动打开, 所以捋了捋还有那些需要自动打卡的站点, 结果发现52pojie的qq自动登录, 只用find_element的话找不到代码, 原因是 frame 嵌套页面的应用, WebDriver 每次只能在一个页面上识别元素。 这个时候就需要通过 switch_to.frame(), 将当前定位的主体切换到 frame 里在定位元素。 switch_to.frame() 默认可以直接取表单的 id 或 name 属性进行切换。#id = "if" wd.switch_to.frame("if") #name = "nf" wd.switch_to.frame("nf") 那么如果 iframe 没有可用的 id 和 name 可以先定位frame#先通过 xpth 定位到 iframe xf = wd.find_element_by_xpath('//*[@class="if"]') #再将定位对象传给 switch_to_frame()方法 wd.switch_to_frame(xf) wd.switch_to_default_conten
最近也是 在摸鱼 比较忙, 时隔20天利用cookie实现音乐网站自动登录并打卡 不复杂 原理:首先手动完成登录,把cookie保存到本地,再吧cookies注入到浏览器里面,就实现了自动登录,然后再通过click()实现签到 1. Cookie保存到本地 from selenium import webdriver from selenium.webdriver.chrome.service import Service import json options = webdriver.ChromeOptions() options.add_experimental_option('detach',True) wd = webdriver.Chrome(service=Service(r'C:\\tools\\chromedriver.exe'),options=options) wd.get('https://hifini.com/') input('手动登录后,随便输入后继续') dictCookies = wd.get_cookies() jsonCookies = j
起因是最近再找无损音乐的资源, 但是需要积分才能下载, 虽然可以使用钞能力, 但是每天能自动签到的话就可以节省下来了嘛, 俗话说的好,骑自行车去酒吧,该省省该花花! 所以根据拾起了Python+Selenium, 今天先来个简单的,Iamtxt书源下载站的自动签到。 音乐些许复杂,涉及图形滑块验证, 但是我聪明的小脑瓜想了一想, 用cookie自动登录就可以绕过啦 明天试试! 1. 安装与原理 一、原理 Selenium是一套Web网站程序自动化解决方案 Selenium客户端库 --> 浏览器驱动 --> 控制浏览器 自动化程序调用Selenium 客户端库函数(比如点击按钮元素) 客户端库会发送Selenium 命令 给浏览器的驱动程序 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令 浏览器执行命令 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序 自动化程序对返回结果进行处理 二、安装 安装客户端库pip install Selenium 电脑下载浏览器驱动 chrome浏览器 edge浏览器 放置路径推荐: c:\tools\chromedri
Vendor
不爱看书、不爱看电影、每说三句话就撒两次谎