下拉框处理
web页面上经常会有下拉框,对下拉框的处理比较简单,一般分为两种情况:
1、下拉框通过元素定位识别,举例:
driver.find_element(By.XPATH,'//option[@value=“mango”]).click()上面的元素为下拉框中的选项。
2、创建一个select的对象,然后通过相应方法处理,举例:
selectElement = driver.find_element(By.XPATH,//select[@id=“Selector”]”)
s = Select(selectElement)
s.select_by_index(2) #索引定位,索引从0开始
time.sleep(2)
s.select_by_value(“mango”) #value属性的值
time.sleep(2)
s.select_by_visible_text(“桔子”) #可见文本内容
from selenium import webdriver
from config_utils import config_u
from log_utils import LogUtils
from selenium.webdriver.firefox.service import Service
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
from selenium.webdriver.support.select import Select
log_path = config_u.get_log_path
log_utils = LogUtils(log_path)
class WebDriver:
def __init__(self,driver_path=config_u.get_driver_path):
path = Service(driver_path)
self.driver = webdriver.Firefox(service=path)
self.mouse = ActionChains(self.driver)
def element_xpath_select(self,xpath_path,value):
#下拉框识别
#self.driver.find_element(By.XPATH,xpath_path).click()
#通过下拉框对象识别
select_element = self.driver.find_element(By.XPATH,xpath_path)
select_el = Select(select_element)
select_el.select_by_value(value)
JS处理
当webdriver遇到无法完成的操作时候,这个时候可以使用javascript来完成webdriver提供了execute_script()接口来调用js代码。执行is有两种场景:
一种是在页面上直接执行is
另一种是在某个已经定位的元素上执行js
自动化常用JS
alert(“hello!”) 弹出提示框
document.body.scrollTop=1000 滚动操作
document.body.scrollTop=500 修改参数改变位置滑动
arguments[0].style.border = ‘5px solid red’; 把选定元素框起来
针对时间控件可以使用:
arguments[0].removeAttribute(‘value’) 移除元素属性
arguments[0].setAttribute(‘value’,“ssss”) 修改元素属性
def element_op_js(self,js_daima):
#调用js
self.driver.execute_script(js_daima)