zoukankan      html  css  js  c++  java
  • Python+selenium之调用JavaScript

    webdriver提供了操作浏览器的前进和后退的方法,但是对于浏览器公东条并没有提供相应的操作方法。于是就需要借助JavaScript来控制浏览器的滚动条。webdriver提供了execute_sript()方法来执行JavaScript代码。

     一般必须使用滚动条的场景是:注册时的法律文件条文阅读。判断用户是否阅读完的标准是:滚动条是否拉倒页面底部。为了使操作更接近用户行为也会使用滚动条,例如用户操作的元素在页面的第二屏,一般用户不会对看不到的元素进行操作,那么需要现将滚动条拖动到页面的第二屏在进行操作。

    window.scrollTo()方法用于设置浏览器窗口滚动条的水平和垂直位置。方法的第一个参数表示水平的左间距,第二个参数表示垂直的上边距。其代码如下:

     1 from selenium import webdriver
     2 from time import sleep
     3 import time
     4 # 访问百度
     5 driver = webdriver.Firefox ()
     6 driver.get("http://www.baidu.com")
     7 # 控制浏览器大小
     8 driver.set_window_size(600,600)
     9 # 收索
    10 driver.find_element_by_id("kw").send_keys("你好")
    11 driver.find_element_by_id("su").click()
    12 time.sleep(2)
    13 
    14 # 通过javascript设置浏览器窗口的滚动条 注:window.scrollTo(水平滚动条的距离,垂直滚动条的距离)
    15 js = "window.scrollTo(450,0);"
    16 driver.execute_script(js)
    17 time.sleep(5)
    18 
    19 
    20 driver.quit ()

    通过浏览器打开百度进行收索,并且提前通过set_window_size()方法选择浏览器窗口设置为固定宽高显示,目的是让窗口出现水平和垂直滚动条。并且JavaScript的作用不仅仅体现在浏览器滚动条的操作上,还可以用它向页面红的text文本框输入内容。

    虽然可以通过id的方式将其进行定位,却不能通过send_keys()向文本框中输入文本信息。这种情况下,就需要借助JavaScript代码完成输入。

  • 相关阅读:
    php json_encode JSON_UNESCAPED_UNICODE
    ubuntu 添加多个ssh公钥和私钥
    如何自动化新增配置文件呢?
    git配置ssh公钥
    项目PHP新知识点
    mysql 数据库复制表 create table city1 like city;
    .NET 泛型集合数据写CSV文件
    .NET C# 泛型队列
    逆向地理编码--根据地址搜索定位,点击地图、获取经纬度信息
    正向地理编码-根据输入地址获取经纬度
  • 原文地址:https://www.cnblogs.com/fengyiru6369/p/7506262.html
Copyright © 2011-2022 走看看