1.访问页面、find_element_by_name选取元素、访问iframe、提交表单
#引入webdriver from selenium import webdriver import time as t driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get("http://xxxxx/yyyy") #添加需求标题 driver.find_element_by_name("data[Story][name]").send_keys("添加需求测试用例") #添加需求详细描述 iframe = driver.find_element_by_tag_name("iframe") # driver.switch_to_frame(iframe) //旧版切换iframe driver.switch_to.frame(iframe) #清空详细描述 driver.find_element_by_tag_name("body").clear() #填写需求详细描述 driver.find_element_by_tag_name("body").send_keys("添加需求测试用例"); #切换回父页面 driver.switch_to.default_content() # 点击提交按钮 # driver.find_element_by_id("btn_save_view").click() # 提交表单 driver.find_element_by_id("FormStory").submit() t.sleep(5) driver.quit()
2. find_element_by_xpath XPath方式选取元素
!/usr/bin/python3 --coding:utf-8 -- from selenium import webdriver import time as t driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get("http://xxxxx/yyyy") # find_element_by_xpath选取元素 a_link = driver.find_element_by_xpath('//*[@id="searchable"]/div[3]/div/ul/li[2]/p[2]/a') a_link.click(); t.sleep(5) driver.quit()
Chrome控制台选中元素,Copy XPath 可以复制出XPath
3.find_element_by_css_selector方式选取元素,execute_script执行js
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time as t #up = "window.scrollTo(0,0)" #down = "window.scrollTo(0,document.body.scrollHeight)" #tui-b是一个带滚动条的容器 #滚动到最顶端 up = "document.querySelector('.tui-b').scrollTop=0" #滚动条向下滚100px down = "document.querySelector('.tui-b').scrollTop=100" driver = webdriver.Chrome() driver.maximize_window() driver.get("http://xxxxx/yyyy"); #向下滚动,以便看到update_status_btn按钮 driver.execute_script(down) driver.find_element_by_css_selector("#update_status_btn").click() t.sleep(4) driver.quit()
4.得到当前页面的地址
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() //最大化窗口 driver.implicitly_wait(30) driver.get("http://xxx.yyyy") print('测试地址为: {0}'.format(driver.current_url)) driver.quit()
5.得到当前页面的源码
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get("http://www.xxxx.com") print('页面代码如下: {0}'.format(driver.page_source)) driver.quit()
6.得到当前页面的标题
driver = webdriver.Chrome() print('页面标题:{0}'.format(driver.title))
7.判断元素是否选中
from selenium import webdriver import time as t driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get("www.sss.com") login_remember = driver.find_element_by_id("chkWeek") print("是否记住login: {0}".format(login_remember.is_selected())) login_remember.click() print("是否记住login: {0}".format(login_remember.is_selected())) driver.quit()
8.选取链接元素
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get("www.yyy.com") obj = driver.find_element_by_link_text(u"添加需求测试用例") obj = driver.find_element_by_partial_link_text(u'添加需求测试') obj.click() driver.quit()
9.下拉选择框select的定位
from selenium.webdriver import ActionChains import time as t driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get("http://www.baidu.com") t.sleep(3) element = driver.find_element_by_link_text(u'设置') t.sleep(2) ActionChains(driver).move_to_element(element).perform() t.sleep(3) driver.find_element_by_css_selector('.setpref').click() t.sleep(3) nr= driver.find_element_by_id('nr') select = Select(nr) select.select_by_visible_text('每页显示20条') #按文本选择 select.select_by_index(2) #50 按索引值选择 select.select_by_value('20') #按option的value值选择, 记得要引号 print('下拉框选择的最新条数是:', nr.get_attribute('value')) t.sleep(3) driver.quit()
10.原生alert框的定位
from selenium import webdriver from selenium.webdriver.support.select import Select //需要的库 from selenium.webdriver.common.alert import Alert from selenium.webdriver.common.action_chains import ActionChains import time as t driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get("http://www.baidu.com") t.sleep(3) element = driver.find_element_by_link_text(u'设置') t.sleep(2) ActionChains(driver).move_to_element(element).perform() t.sleep(3) driver.find_element_by_css_selector('.setpref').click() t.sleep(3) nr= driver.find_element_by_id('nr') select = Select(nr) select.select_by_visible_text('每页显示20条') select.select_by_index(2) #50 select.select_by_value('20') print('下拉框选择的最新条数是:', nr.get_attribute('value')) t.sleep(3) driver.find_element_by_css_selector('.prefpanelgo').click() t.sleep(2) #获取alert框的文本信息 //关键语句 print('alert框的文本:{0}'.format(driver.switch_to.alert.text)) #点击alert框的确定按钮 //关键语句 driver.switch_to.alert.accept() driver.quit()