zoukankan      html  css  js  c++  java
  • 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像素

    #滚动至指定元素的中间位置
    browser.execute_script('arguments[0].scrollIntoView({behavior: "smooth",block: "center", inline: "center",})',lemfix_ele)
     

    """

     




    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()
     
  • 相关阅读:
    学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll
    C#中MySQL数据库的备份 还原 初始化
    winform学习笔记02
    mysql与sqlserver之间的关系转换
    mysql数据库使用
    python学习--导入自己的包
    thymeleaf 拼接 超链接
    @RequestParam与@PathVariable的区别
    ifram 实现左侧菜单,右侧显示内容
    Spring 整合Shiro:记住我
  • 原文地址:https://www.cnblogs.com/fyangq/p/12559119.html
Copyright © 2011-2022 走看看