selenium执行js

import java.util.ArrayList;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class TestBaidu {

    public static WebDriver driver;

    /*
     * @BeforeClass    * public void setUp() { driver = new FirefoxDriver();
     * driver.manage().window().maximize(); }
     *
     * @AfterClass    * public void tearDown() { driver.close(); driver.quit(); }
     *
     * @Test    * public void process() {
     * driver.navigate().to("http://www.baidu.com"); //
     * driver.findElement(By.id("kw")); JavascriptExecutor j =
     * (JavascriptExecutor) driver;
     * j.executeScript("document.getElementById(\"kw\").value=\"测试\""); }
     */

    public static void main(String[] args) throws InterruptedException {
        // 可能需要设置firefox的路径
        driver = new FirefoxDriver();
        try {
            driver.manage().window().maximize();
            driver.get("http://www.baidu.com");
            // 利用webdriver键入搜索关键字
            // driver.findElement(By.id("kw")).sendKeys("yeetrack");
            // 利用js代码键入搜索关键字
            ((JavascriptExecutor) driver)
                    .executeScript("document.getElementById(\"kw\").value=\"测试\"");
            // 利用js代码取出关键字
            String keyword = (String) ((JavascriptExecutor) driver)
                    .executeScript("var input = document.getElementById(\"kw\").value;return input");
            System.out.println(keyword);
            driver.findElement(By.id("su")).click();
            TimeUnit.SECONDS.sleep(5);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            driver.quit();
        }
    }

}
时间: 2024-11-29 12:19:22

selenium执行js的相关文章

python使用selenium执行JS快速完成超长字符串的输入

使用selenium的 .send_keys 方法能够满足大多数情况的输入操作,但是在输入内容很多的情况下,使用该方法会消耗很多时间. 此时可以使用selenium执行js的  .innerHTMLf方法快速输入这些内容. 但是使用js的方法有一定缺陷性,它对常见  input标签类型的输入框无效,只对大多数富文本框生效. 非常简单的html界面 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo

selenium之执行JS

selenium执行js语句主要靠execute_script()方法实现. 实例如下: from selenium import webdriver bro=webdriver.Chrome() bro.get("https://www.zhihu.com/explore") bro.execute_script("window.scrollTo(0,document.body.scrollHeight)") bro.execute_script("al

selenium 使用js执行脚本儿链接整理

使用Webdriver执行js小结:http://lijingshou.iteye.com/blog/2018929 Selenium+Webdriver学习(三)执行JS脚本:http://www.tuicool.com/articles/buIbeiN selenium webdriver 执行javascript代码:http://www.open-open.com/lib/view/open1402750704931.html 高端自动化测试交流群:310924886

Python selenium中添加JS并执行JS语句

众所周知,Python通常结合selenium模块来完成一些web的自动化测试以及RPA(Robotic Process Automation)工作.事实上,Selenium还可以支持插入js语句.执行js语句.返回js语句的执行结果到python程序中.这对于那些已经习惯了Javascript语法的程序员们,简直是一大神器. 举个简单的例子,我们用selenium原生的方法对页面的一个input元素执行输入时,通常需要用到selenium中的send_keys以及clear方法, 代码类似于:

在CMD下启动vmware、Xshell连接虚拟机以及控制Chrome浏览器自动执行js登录校园网

标题有点长,主要是写个bat出来玩玩, (1)不用每次都手动关闭mysql服务(我不想把它设为手动启动,有强迫症) (2)然后希望每次vmware能自动连上虚拟机 (3)以及每次Xshell都能自动启动,然后就连上虚拟机 (4)然后校园网每次都要打开,输入帐号密码什么的,才能连网,我希望它自己搞定 做完了这几步还是有点意思的,主要是浏览器还是网页的什么自动化测试,然后eclipse下项目打包成可执行的jar包 现在听我娓娓道来吧! 前面要达到的目的跟着后面的命令并无关联 (1)首先在bat里面关

Python selenium的js扩展实现

python写的数据采集,对一般有规律的页面用 urllib2 + BeautifulSoup + 正则就可以搞定. 但是有些页面的内容是通过js生成,或者通过js跳转的,甚至js中还加入几道混淆机制:对这种涉及页面脚本解析的内容,前面的方式便很无力. 这时我们需要能解析.运行js的引擎——浏览器,而python selenium能提供程序与浏览器的交互接口,再加上phantomjs这个可以后台运行的浏览器,即使用 selenium + phantomjs 便可以解决以上的问题. seleniu

python之selenium调用js(execute_script)

转载: http://www.cnblogs.com/fnng/p/3230768.html 本节重点: 调用js方法 execute_script(script, *args) 在当前窗口/框架 同步执行javaScript 脚本:JavaScript的执行. *参数:适用任何JavaScript脚本. 使用: driver.execute_script('document.title') 使快播登陆用户名输入框标红显示: #coding=utf-8 from selenium import

python selenium --调用js

转自:http://www.cnblogs.com/fnng/p/3230768.html 本节重点: 调用js方法 execute_script(script, *args) 在当前窗口/框架 同步执行javaScript 脚本:JavaScript的执行. *参数:适用任何JavaScript脚本. 使用: driver.execute_script(‘document.title’) 使快播登陆用户名输入框标红显示: #coding=utf-8 from selenium import w

学习笔记:robotframework和python脚本执行js命令的小计

写python+selenium自动化脚本免不了要用到js,练习执行js命令,excute_script(js_command),但是在robotframework中使用相同方法执行报错,调整后执行通过,记录一下O(∩_∩)O~