python selenium T1
EG1 :
import time from selenium import webdriver url = 'http://baidu.com' urls = ['http://zhidao.baidu.com', 'http://news.baidu.com'] driver = webdriver.Chrome() driver.get(url) driver.maximize_window() time.sleep(2) driver.set_window_size(480, 800) # width , heigh time.sleep(2) for u in urls: driver.get(u) time.sleep(1) print('%-20s' % ('NOW : ',), driver.current_url) driver.back() print('%-20s' % ('back 1 : ',), driver.current_url) driver.forward() print('%-20s' % ('forward 1 : ',), driver.current_url) driver.quit()
Result
NOW : http://news.baidu.com/ back 1 : http://news.baidu.com/ forward 1 : https://zhidao.baidu.com/
EG2 :
lass OpWebdriver(): def __init__(self): self.driver = driver = webdriver.Chrome() def login(self): login_url = self.login_check() if not login_url: print('NOW LOGIN ') else: self.driver.get(login_url) self.get_ele(['j_username', 'j_password', 'yui-gen1-button'], ['XXX', 'XXXX']) ele = self.driver.find_element_by_link_text('log out') if ele: print('LOGIN DONE') WebdriverUtils.print_ele('ele size', ele.size, 'ele text', ele.text, 'ele get_attribute', ele.get_attribute('text'), 'ele is_displayed', ele.is_displayed() ) def login_check(self): url = 'http://jenkins.banya.com.cn:8080/' self.driver.get(url) ele = self.driver.find_element_by_partial_link_text('log in') if ele: return ele.get_attribute('href') def get_ele(self, eles, values): for index, ele_id in enumerate(eles[:-1]): ele = self.driver.find_element_by_name(ele_id) ele.clear() ele.send_keys(values[index]) time.sleep(0.5) self.driver.find_element_by_id(eles[-1]).submit() op = OpWebdriver() op.login()
Result
LOGIN DONE ele size {'width': 43, 'height': 15} ele text log out ele get_attribute log out ele is_displayed True
EG3 :
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains url = 'http://baidu.com' driver = webdriver.Chrome() driver.get(url) driver.find_element_by_name('wd').send_keys('头条') ele = driver.find_element_by_id('su') target = driver.find_element_by_id('wd') ActionChains(driver).context_click(ele).perform() # 右击 time.sleep(1) ActionChains(driver).double_click(ele).perform() # 双击 time.sleep(1) ActionChains(driver).drag_and_drop(ele , target).perform() # 拖动 time.sleep(1) ActionChains(driver).move_to_element(ele).perform() # 鼠标移动到元素上 time.sleep(1) ActionChains(driver).click_and_hold(ele).perform() # 按下鼠标左键
EG4:
import time from selenium import webdriver from selenium.webdriver.common.keys import Keys url = 'http://baidu.com' driver = webdriver.Chrome() driver.get('http://news.baidu.com') driver.get(url) now_handel = driver.current_window_handle handles = driver.window_handles ele = driver.find_element_by_name('wd') ele.send_keys('头条A') driver.implicitly_wait(30) print('driver.implictly done') time.sleep(1) ele.send_keys(Keys.BACK_SPACE) time.sleep(1) ele.send_keys(Keys.CONTROL , 'a') time.sleep(1) ele.send_keys(Keys.CONTROL,'c') time.sleep(1) ele.send_keys(Keys.CONTROL,'x') time.sleep(1) ele.send_keys(Keys.CONTROL,'v') print(driver.title) print(driver.current_url)
分页、下拉框、警告框、上传、下载文件、控制浏览器滚动条、Cookie
关于跳过验证码, 可以通过driver.add_cookie()