Selenium(16):通过调用javascript进行操作

调用javascript

   当webdriver遇到无法完成的操作时候,这个时候可以使用javascript来完成,webdriver提供了execute_script()接口来调用js代码。

执行js有两种场景:

  一种是在页面上直接执行js

  另一种是在某个已经定位的元素上执行js

常用的调用javascript语法如下

设置弹框的文本内容
  js_code_str = 'alert("hello,world !!");'
加边框 元素高亮显示
  js_code_str_01 = "arguments[0].style.border='5px solid red';"
浏览器滚动
  js_code_str_02 = 'document.body.scrollTop=10000;'
滚动到指定元素
  js_code_str_03 = 'arguments[0].scrollIntoView();'
修改元素的属性      一般用在时间控件只能选不能输入,可以把文本框的readonly属性去掉
  js_code_str_04 = 'arguments[0].setAttribute("value","newdream");'
删除元素属性
  js_code_str_05 = 'arguments[0].removeAttribute("value");'

代码如下:

import os
from selenium import webdriver
from selenium.webdriver.common.by import By

current_path = os.path.dirname(os.path.abspath(__file__))  # 当前路径
driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe')  # driver路径
pages_path = os.path.join(current_path,'../pages/element_samples.html')  # 本地网页路径
driver = webdriver.Chrome(executable_path=driver_path)  # Firefox,Ie等
driver.get('file://%s'%pages_path)  # 本地网页打开file://  打开部署好的站点http://

# 设置弹框的文本内容
js_code_str = 'alert("hello,world !!");'
driver.execute_script(js_code_str)

# 加边框  元素高亮显示
js_code_str_01 = "arguments[0].style.border='5px solid red';"
element_obj_01 = driver.find_element(By.XPATH,'//input[@name="attach[]"]')
driver.execute_script(js_code_str_01,element_obj_01)

# 浏览器滚动
js_code_str_02 = 'document.body.scrollTop=10000;'
driver.execute_script(js_code_str_02)

# 滚动到指定元素
js_code_str_03 = 'arguments[0].scrollIntoView();'
element_obj_03 = driver.find_element(By.XPATH,'//input[@id="friend"]')
driver.execute_script(js_code_str_03,element_obj_03)

# 修改元素的属性  一般用在时间控件只能选不能输入,可以把文本框的readonly属性去掉
js_code_str_04 = 'arguments[0].setAttribute("value","newdream");'
element_obj_04 = driver.find_element(By.XPATH,'//input[@name="alterbutton"]')
driver.execute_script(js_code_str_04,element_obj_04)

# 删除元素属性
js_code_str_05 = 'arguments[0].removeAttribute("value");'
element_obj_05 = driver.find_element(By.XPATH,'//input[@name="alterbutton"]')
driver.execute_script( js_code_str_05 , element_obj_05 )

 

posted @ 2021-11-26 17:08  奔跑在路上you  阅读(483)  评论(0编辑  收藏  举报