python自动化其他方法
照片截图
from selenium import webdriver import time driver = webdriver.Chrome() driver.get('http://www.imooc.com') driver.save_screenshot('test.png') time.sleep(2) driver.close()
js脚本执行
from selenium import webdriver # from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Chrome() driver.get('https://www.imooc.com/article') js = 'document.documentElement.scrollTop = 100000;' driver.execute_script(js) t=True while t: element_list = driver.find_elements_by_class_name('article-lwrap') for element in element_list: course_name = element.find_element_by_tag_name('p').text print(course_name) if course_name == 'Spring Boot实战系列(1)项目构建': element.click() t = False driver.execute_script(js) driver.close()
浏览器提示框
from selenium import webdriver # from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Chrome() driver.get('https://www.imooc.com') time.sleep(2) driver.find_element_by_id('alert').click() time.sleep(2) driver.switch_to.alert.accept() time.sleep(2) driver.find_element_by_id('sure').click() time.sleep(2) driver.switch_to.alert.accept() time.sleep(2) driver.refresh() time.sleep(2) driver.find_element_by_id('sure').click() time.sleep(2) driver.switch_to.alert.dismiss() time.sleep(2) driver.refresh() time.sleep(2) driver.find_element_by_id('three').click() time.sleep(2) alert_element = driver.switch_to.alert print(alert_element.text) alert_element.send_keys('text')#由于兼容性,chrome不兼容selenium的弹窗文本输入. alert_element.accept() driver.close()
富文本切换
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Chrome() driver.get('https://www.imooc.com') element = driver.find_element_by_id("js-signin-btn") element.click() time.sleep(3) driver.find_element_by_name("email").send_keys('940142834@qq.com') element = driver.find_element_by_name('password') element.send_keys('zsj520wm') driver.find_element_by_class_name("moco-btn-lg").click() time.sleep(2) driver.get('https://www.imooc.com/wenda/save') driver.switch_to.frame('ueditor_0') time.sleep(2) p_element = driver.find_element_by_tag_name('p') ActionChains(driver).move_to_element(p_element).click().send_keys('This is test').perform() time.sleep(3) driver.switch_to.default_content() time.sleep(2) driver.find_elements_by_class_name('save-list-tag')[1].click() time.sleep(3) driver.close()
浏览器上传文件
from selenium import webdriver from selenium.webdriver.support.select import Select from pykeyboard import PyKeyboard import time driver = webdriver.Chrome() pykey = PyKeyboard() driver.get('https://www.imooc.com') element = driver.find_element_by_id("js-signin-btn") element.click() time.sleep(3) driver.find_element_by_name("email").send_keys('940142834@qq.com') element = driver.find_element_by_name('password') element.send_keys('zsj520wm') driver.find_element_by_class_name("moco-btn-lg").click() time.sleep(15) try: driver.get("https://www.imooc.com/user/setprofile") time.sleep(5) driver.find_element_by_id("upload").send_keys("D:\\download\\test.png") time.sleep(5) driver.close() except: driver.close() ''' ''' time.sleep(15) pykey.tap_key(pykey.shift_key) pykey.type_string("D:\\download\\test.png") time.sleep(2) pykey.tap_key(pykey.enter_key) time.sleep(2) pykey.tap_key(pykey.enter_key) driver.close()
浏览器操作cookie
from selenium import webdriver from selenium.webdriver.support.select import Select import time driver = webdriver.Chrome() driver.get('http://order.imooc.com/myorder') time.sleep(2) driver.delete_all_cookies() ''' driver.get('http://www.imooc.com') element = driver.find_element_by_id("js-signin-btn") element.click() time.sleep(3) driver.find_element_by_name("email").send_keys('940142834@qq.com') element = driver.find_element_by_name('password') element.send_keys('zsj520wm') driver.find_element_by_class_name("moco-btn-lg").click() time.sleep(2) #拿到所有cookies cookie_list = driver.get_cookies() ''' cookie = {} time.sleep(2) # 打印cookies print(cookie) driver.add_cookie(cookie) time.sleep(2) driver.get('http://order.imooc.com/myorder') time.sleep(2) driver.close()
浏览器操作json
import json class HandleJson: def load_json(self): with open('\\learn_test\\config\\cookie.json') as fp: data = json.load(fp) return data def get_data(self): return self.load_json() def write_data(self,data): with open('\\learn_test\\config\\cookie.json','w') as fp: fp.write(json.dumps(data)) # # if __name__ == '__main__': # hand = HandleJson() # print(hand.get_data()) handle_json = HandleJson()
浏览器切换句柄
1 from selenium import webdriver 2 from selenium.webdriver.support import expected_conditions as EC 3 import time 4 5 driver = webdriver.Chrome() 6 driver.get('https://www.imooc.com/user/newlogin/from_url/') 7 driver.find_element_by_name('email').send_keys('13052939116') 8 driver.find_element_by_name('password').send_keys("zsj520wm") 9 driver.find_element_by_class_name('moco-btn').click() 10 time.sleep(2) 11 12 driver.get('https//www.imooc.com/user/setbindsns') 13 driver.find_elements_by_class_name('inner-i-box')[1].find_element_by_class_name('moco-btn-normal').click() 14 15 handle_list = driver.window_handles 16 current_handle = driver.current_window_handle 17 print(handle_list) 18 #[1,2,3,4] 19 time.sleep(15) 20 for i in handle_list: 21 if i != current_handle: 22 time.sleep(2) 23 driver.switch_to.window(i) 24 ti = EC.title_contains('网站连接') 25 if ti(driver) == True: 26 break 27 time.sleep(5) 28 driver.find_element_by_id('userId').send_keys('test') 29 time.sleep(5) 30 driver.close() 31 driver.quit()
少壮不努力,老大徒伤悲