1、滚动条处理 

# 移动到元素ele对象的"底端"与当前窗口的"底部"对齐
driver.execute_script('arguments[0].scrollIntoView();',ele)
# 移动到元素ele对象的"顶端"与当前窗口的"顶部"对齐
driver.execute_script('arguments[0].scrollIntoView(false);',ele)
# # 移动到页面底部
driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')
# # 移动到页面顶部
driver.execute_script('window.scrollTo(document.body.scrollHeight,0)')
代码实现滚动条操作:
 1 from selenium import webdriver
 2 from selenium.webdriver.common.keys import Keys
 3 from selenium.webdriver.support.wait import WebDriverWait
 4 from selenium.webdriver.support import expected_conditions as EC
 5 from selenium.webdriver.common.by import By
 6 driver=webdriver.Chrome()
 7 driver.maximize_window()
 8 driver.get('https://wwww.baidu.com')
 9 driver.find_element_by_id('kw').send_keys("柠檬班",Keys.ENTER)
10 WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//a[text()=' - 主页']")))
11 # 1、找到需要定位的元素
12 ele=driver.find_element_by_xpath("//a[text()=' - 主页']")
13 # 2、移动到元素ele对象的"底端"与当前窗口的"底部"对齐
14 driver.execute_script('arguments[0].scrollIntoView();',ele)

2、js操作元素属性

  web自动化测试中,当遇到不能直接输入的输入框时(比如,元素属性中有readonly属性),需要使用js改变元素的属性,使得输入框可以输入信息

  代码操作如下:

 1 import time
 2 from selenium import webdriver
 3 from selenium.webdriver.common.action_chains import ActionChains
 4 from selenium.webdriver.support.wait import WebDriverWait
 5 from selenium.webdriver.support import expected_conditions as EC
 6 from selenium.webdriver.common.by import By
 7 driver=webdriver.Chrome()
 8 driver.maximize_window()
 9 driver.get('https://www.12306.cn/index/')
10 
11 # 获取出发地元素
12 start_site=driver.find_element_by_id("fromStation")
13 start_site_text=driver.find_element_by_id("fromStationText")
14 
15 # 设置出发地信息(使用web查找元素的方式,在进行js操作),如果使用xpath定位元素的情况只能用这种方法,不能直接使用js语句
16 driver.execute_script("var start=arguments[0];var start_text=arguments[1];start.value='ZZF';start_text.value='郑州';",start_site,start_site_text)
17 
18 # 设置目的地信息(使用js操作)
19 js='var to_site=document.getElementById("toStation");to_site.value="HZH";to_site_text=document.getElementById("toStationText");to_site_text.value="杭州";'
20 # 执行js语句
21 driver.execute_script(js)
22 
23 # 设置出发日期
24 js='var start_time=document.getElementById("train_date");start_time.readOnly=false;start_time.value="2020-04-16";'
25 driver.execute_script(js)
26 
27 # 获取查询按钮元素并点击
28 driver.find_element_by_id("search_one").click()
29 time.sleep(0.5)
30 # 获取句柄
31 handles=driver.window_handles
32 driver.switch_to.window(handles[-1])
33 time.sleep(0.5)
34 # 定位查找到的元素
35 WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[@class="menu-nav-hd"]')))
36 ele=driver.find_element_by_xpath('//a[@class="menu-nav-hd"]')
37 # 实例化ActionChains
38 ac=ActionChains(driver)
39 ac.move_to_element(ele)
40 ac.perform()
41 time.sleep(2)
42 driver.quit()

 


posted on 2020-04-15 15:01  今天的事儿做完了吗  阅读(457)  评论(0编辑  收藏  举报