第一部分:元素常用操作api
import os,time
from selenium import webdriver
from selenium.webdriver.common.by import By
driver_path = os.path.join(os.path.dirname(__file__),'../driver/chromedriver.exe')
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://www.baidu.com')
driver.set_window_size(1920,1080)
driver.implicitly_wait(30)
kw = driver.find_element(By.ID,'kw')
kw.send_keys('webdriver 常用api操作')
time.sleep(1)
kw.clear()
driver.find_element(By.LINK_TEXT,'更多').click()
driver.find_element(By.ID,'form').submit()
kw = driver.find_element(By.CSS_SELECTOR,'input#su')
print('返回对象的尺寸:',kw.size)
print('获取对象文本:',kw.text)
print('获取对象属性值:',kw.get_attribute('class'))
print('判断对象是否可见:',kw.is_displayed())
print('判断读写是否被禁用:',kw.is_enabled())
print('判断对象是被选中:',kw.is_selected())
print('获取对象标签名:',kw.tag_name)
print('获取对象标签名称:',kw.location)
print('获取元素坐标:',kw.location)
time.sleep(10)
driver.close()
driver.quit()
第二部分:鼠标键盘操作
import os
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver_path = os.path.join(os.path.dirname(__file__), '../driver/chromedriver.exe')
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://www.baidu.com')
driver.maximize_window()
driver.implicitly_wait(30)
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys(Keys.TAB)
time.sleep(1)
ActionChains(driver).send_keys(Keys.TAB).perform()
time.sleep(1)
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
time.sleep(1)
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys('selenium ui 自动化测试')
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
time.sleep(1)
ActionChains(driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
time.sleep(1)
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys('444444')
time.sleep(3)
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
time.sleep(5)
driver.quit()
第三部分:等待操作
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
import time
time.sleep(0.5)
driver.implicityl_wait(100)
element = driver.find_element(By.CSS_SELECTOR,'div.red_box')
from selenium.webdriver.support.ui import WebDriverWait
element = WebDriverWait(driver,3).until(lambda x:x.find_element_by_css_selector("div.red_box"))
第四部分:处理常见的场景
import time,os
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
driver_path = os.path.join(os.path.dirname(__file__),'../driver/chromedriver.exe')
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('C:\\Users\\kcadmin\\Desktop\\ui_base_projec\\element\\element_samples.html')
driver.implicitly_wait(30)
driver.maximize_window()
inputs = driver.find_elements(By.CSS_SELECTOR,'input[type="checkbox"]')
for input in inputs:
if input.get_attribute('type') == 'checkbox':
input.click()
time.sleep(1)
driver.find_element(By.CSS_SELECTOR,'td.widgetStyle').find_element(By.CSS_SELECTOR,'input.Baidu').click()
time.sleep(1)
driver.switch_to.default_content()
driver.find_element(By.NAME,'alterbutton').click()
time.sleep(1)
driver.switch_to.alert.accept()
time.sleep(1)
driver.find_element(By.NAME,'promptbutton').click()
driver.switch_to.alert.send_keys('hello promput')
driver.switch_to.alert.dismiss()
time.sleep(1)
driver.find_element(By.NAME,'promptbutton').click()
driver.switch_to.alert.send_keys('hello promput')
driver.switch_to.alert.accept()
driver.switch_to.alert.accept()
driver.find_element(By.NAME,'confirmbutton').click()
driver.switch_to.alert.dismiss()
driver.switch_to.alert.accept()
time.sleep(1)
driver.find_element(By.NAME,'confirmbutton').click()
driver.switch_to.alert.accept()
driver.switch_to.alert.accept()
driver.find_element(By.XPATH,'//option[@value="mango"]').click()
from selenium.webdriver.support.select import Select
selectElement = driver.find_element(By.XPATH,'//select[@id="Selector"]')
s = Select(selectElement)
s.select_by_index(1)
time.sleep(1)
s.select_by_value('mango')
time.sleep(1)
s.select_by_visible_text('桔子')
driver.get('C:\\Users\\kcadmin\\Desktop\\ui_base_projec\\element\\wait.html')
driver.execute_script('alert("hello!")')
driver.switch_to.alert.accept()
time.sleep(1)
driver.find_element(By.CSS_SELECTOR,'button#b').click()
time.sleep(1)
wl = driver.find_element(By.CSS_SELECTOR,'div.red_box')
driver.execute_script("arguments[0].style.border='10px solid purple'",wl)
time.sleep(1)
driver.get('https://www.baidu.com')
driver.find_element(By.ID,'kw').send_keys('selenium ui 自动化测试')
js = "var user_input = document.getElementById('su').getAttribute('id');return user_input"
driver.execute_script(js)
driver.find_element(By.ID,'su').click()
time.sleep(1)
driver.execute_script("var q=document.documentElement.scrollTop=10000")
driver.get("http://www.youdao.com")
for cookie in driver.get_cookies():
print("%s -> %s" % (cookie['name'],cookie['value']))
driver.add_cookie({'name':'key-aaaaa','value':'value-bbbb'})
driver.delete_cookie("key-aaaaa")
time.sleep(7)
driver.close()
driver.quit()
文章源自懂站帝-http://www.sfdkj.com/17864.html