python+selenium 的js操作

  1. 窗口滚动
browser= webdriver.Chrome()
url='https://www.baidu.com/'

browser.get(url)

try:
wait=WebDriverWait(browser,10)
input_element=wait.until(EC.presence_of_element_located((
By.CSS_SELECTOR,"#kw"
)))
# 输入关键词
input_element.send_keys("柠檬班")
# 点击百度
wait.until(EC.presence_of_element_located((
By.CSS_SELECTOR,"#su"
))).click()
#方法一:先定位元素然后再将滚动条滚动至指定处

lemfix_ele=wait.until(EC.presence_of_element_located((
By.XPATH,"//a[contains(text(),'www.lemfix.com/')]"
)))
browser.execute_script('arguments[0].scrollIntoView()',lemfix_ele)#将滚动条滚动至指定元素处

time.sleep(10)
#方法二:
  js1 = "window.scrollTo(0, document.body.scrollHeight)"#滑动滚动条到底部
  js2 = "window.scrollTo(0,0)"#滑动到顶部
  js3 = "window.scrollTo(0,200)"#向下移动200像素 js4 = "arguments[0].scrollIntoView();"#滑动滚动条到某个指定的元素
 browser.execute_script(js1) #执行js1,将滚动条滑到最下方

"""
#横向滚动条
browser.set_window_size(500,500) #缩小浏览器窗口,使之出现横向滚动条
js5 = "window.scrollTo(document.body.scrollWidth,0)"
js6 = "window.scrollTo(0,0)"
js7 = "window.scrollTo(200,0)"
browser.execute_script(js5)  #移动到最右边 time.sleep(2) browser.execute_script(js6) #移动到最左边 time.sleep(2) browser.execute_script(js7) #向右移动200像素

"""

 




except (TimeoutException,NoSuchElementException) as e:
print("出现异常:{}".format(e))

finally:
browser.quit()

2.js修改属性以及值

from selenium import webdriver
from time import sleep
from datetime import datetime, date, timedelta
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.12306.cn/index/')
sleep(2)
#js去掉属性
js='document.getElementById("train_date").removeAttribute("readonly")'
driver.execute_script(js)
tommorow = date.today() + timedelta(days = 1)

#方式一:通过send_keys()输入值
# driver.find_element_by_id("train_date").clear()
# driver.find_element_by_id("train_date").send_keys(tommorow)

#方式二:js修改属性的值




js='document.getElementById("train_date").value="{}"'.format(tommorow)
driver.execute_script(js)
sleep(2)
driver.quit()
增加修改元素属性

#给id为nice的元素 增加 title属性并赋值为“测试title”
js='document.getElementById("nice").setAttribute("title","测试title")'
#给id为nice的元素 删除 title属性
js='document.getElementById("nice").removeAttribute("title")'
#获取id为nice的元素 title属性的值
js='document.getElementById("nice").getAttribute("title")'
#修改id为nice的元素 title属性的值
js='document.getELementById("nice").title="测试"'

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
driver.find_element_by_link_text("登录").click()
sleep(1)
#定位“立即注册”位置,修改target属性值为空,让新打开的链接显示在同一个窗口
js='document.getElementsByClassName("pass-reglink pass-link")[0].target=""'
driver.execute_script(js)#执行js语句
driver.find_element_by_link_text("立即注册").click()
sleep(3)
driver.quit()
 

猜你喜欢

转载自www.cnblogs.com/fyangq/p/12559119.html