准备工作
查询浏览器版本 chrome://version/
下载驱动 https://chromedriver.storage.googleapis.com/index.html
下载的驱动版本要和浏览器版本一致
chrome_driver = r'driver\chromedriver.exe' # chromedriver的文件位置 driver = webdriver.Chrome(executable_path=chrome_driver)
获取网页
driver.get(url)
获取元素
- 通过元素名获取元素
driver.find_element_by_name(STR_NAME)
- 通过类名获取元素
driver.find_element_by_class_name(STR_NAME)
- 通过ID获取元素
driver.find_element_by_id(STR_NAME)
这几个是最常用的的,还有其他的,就不在此列举了。
元素操作
点击事件
方式1
获取元素后直接执行点击事件.click()
例如
driver.find_element_by_id(STR_NAME).click()
方式2
driver.execute_script("arguments[0].click();", 元素)
例如
a = driver.find_element_by_id(STR_NAME) # 发送验证码按钮 driver.execute_script("arguments[0].click();", a) # 点击按钮
键入文本
.send_keys(欲键入文本)
例如
elem = driver.find_element_by_name(STR_NAME) elem.send_keys(STR)
一些无用的例子,仅供学习
from selenium import webdriver import time from selenium.webdriver.support.wait import WebDriverWait def sentCode(tel): # 查询浏览器版本 chrome://version/ # 下载驱动 https://chromedriver.storage.googleapis.com/index.html # 下载的驱动版本要和浏览器版本一致 chrome_driver = r'driver\chromedriver.exe' # chromedriver的文件位置 driver = webdriver.Chrome(executable_path=chrome_driver) # 阿里支付宝注册 | 找不到元素 # driver.get('https://memberprod.alipay.com/account/reg/index.htm') # a = driver.find_element_by_class_name('J-agree-button') # a.click() # 高途课堂 | 滑块验证 # driver.get('https://www.gaotu.cn/') # a = driver.find_element_by_class_name('login') # 找到登陆按钮 # driver.execute_script("arguments[0].click();",a) # 点击登录 # elem = driver.find_element_by_name("sms") # 获取手机号输入框 # elem.send_keys(tel) # 填写手机号 # a = driver.find_element_by_class_name('passport-code-btn') # 找到登陆按钮 # driver.execute_script("arguments[0].click();", a) # 点击登录 # 美团 成功 # driver.get( # 'https://passport.meituan.com/account/unitivelogin?service=www&continue=https%3A%2F%2Fwww.meituan.com%2Faccount%2Fsettoken%3Fcontinue%3Dhttps%253A%252F%252Fcq.meituan.com%252F&_nsmobilelogin=true') # elem = driver.find_element_by_name("mobile") # 获取手机号输入框 # elem.send_keys(tel) # 填写手机号 # time.sleep(1) # a = driver.find_element_by_id('J-verify-btn') # 发送验证码按钮 # driver.execute_script("arguments[0].click();", a) # 点击按钮 # print('美团 - 发送') # # 58同城 | 填写电话的输入框无法交互 # driver.get('https://passport.58.com/login/?path=https%3A%2F%2Fcq.58.com%2F%3Futm_source%3Dmarket%26spm%3Du-2d2yxv86y3v43nkddh1.BDPCPZ_BT&source=58-homepage-pc&PGTID=0d100000-0002-5491-9403-de17aabb4e1c&ClickID=2') # a=driver.find_element_by_class_name('phonenum_item') # 找到登陆按钮 # driver.execute_script("arguments[0].click();", a) # 点击按钮 # elem = driver.find_element_by_id("mask_body_item_phonenum") # driver.find_element_by_id("mask_body_item_phonenum").click() # elem .send_keys(tel) # a = driver.find_element_by_id('mask_body_item_getcode') # 发送验证码按钮 # driver.execute_script("arguments[0].click();", a) # 点击按钮 # print('58同城 - 发送') if __name__ == '__main__': sentCode('电话号码')