zoukankan      html  css  js  c++  java
  • selenium 常见操作,js操作-将元素滚动到页面可见区域

      我们在自动化测试中,会遇到需要把浏览器页面的元素移动到可见区域,就需要使用页面向上或者向下滚动

    js操作-滚动条:使用: selenium 当中使用 execute_script   (译:埃克斯Q特。思怪泼特) 方法 执行 js 语句;

    页面元素滚动到可见区域常用的操作:

    1、移动到元素element对象的“底端”与当前窗口的“底部”对齐:

    • driver.execute_script("arguments[0].scrollIntoView(false);",element)

    2、移动到元素element对象的“顶端”与当前窗口的“顶部”对齐 :

    • driver.execute_script("arguments[0].scrollIntoView();",element)

    3、移动到页面底部:

    • driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

    4、移动到页面顶部:

    • driver.execute_script("window.scrollTo(document.body.scrollHeight,0)")

    将元素滚动到可见区域 :百度查询“电脑”,将“电脑_百度百科”移动到底部。

    1、需要滚动的对象:先定位元素

    2、js的滚动语句:上面的四种方法

    from selenium import webdriver
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    import time
    
    driver = webdriver.Chrome()
    driver.get("http://www.baidu.com")
    
    driver.find_element_by_id("kw").send_keys("电脑", Keys.ENTER)
    # driver.find_element_by_id("su").click()
    
    # 1、找到我要滚动到可见区域的元素
    loc = (By.XPATH, '//a[text()="_百度百科"]')
    WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))
    element = driver.find_element(*loc)
    
    # 2、执行js的函数将元素滚动到可见区域:execute_script(译:埃克斯Q特。思怪泼特)
    driver.execute_script("arguments[0].scrollIntoView(false);", element)  # 因顶部有遮罩层,所以与可见区域的底部对齐。
    
    #
    执行js的函数,如果是两个参数 # driver.execute_script("arguments[0].scrollIntoView(false);alert(arguments[1])", element, "200") # 滚动到可见区域后,进行点击操作 element.click() # 等待五秒,查看效果,关闭浏览器 time.sleep(5) driver.quit()

    *******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* 

  • 相关阅读:
    IOS开发之WIFI及IP相关
    Git使用教程
    git push到GitHub的时候遇到! [rejected] master -> master (non-fast-forward)的问题 【转载】
    Linux高并发web服务器开发 【转载】
    Linux下open函数、read函数、write函数 【转载】
    Linux epoll 详解 【转载】
    Linux Socket 编程简介 【转载】
    信号量sem_init,sem_wait,sem_post
    linux线程之pthread_join和pthread_detach 【转载】
    C++ static类成员,static类成员函数 【转载】
  • 原文地址:https://www.cnblogs.com/shouhu/p/12227216.html
Copyright © 2011-2022 走看看