java+selenium使用js注入时报错javascript error: selenium is not defined

今天写了一下selenium的js注入,之前并没有接触过js注入,都是直接在页面上获取和操作控件,看到一个面试题问js注入,所以尝试一下

System.setProperty("webdriver.chrome.driver", "D:\\project\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
Thread.sleep(2000);
//driver.findElement(By.id("kw")).sendKeys("selenium");//driver方式获取百度的输入框
//使用js注入来进行输入框的input
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('kw').value='selenium'");
driver.findElement(By.id("su")).click();//点击百度一下按钮

上面是访问baidu首页,并搜索关键字selenium,最开始selenium关键字没有加引号,直接报错

Exception in thread "main" org.openqa.selenium.JavascriptException: javascript error: selenium is not defined

莫名其妙搜了好久也没找到原因,后来看别人的demo才发现,是js的格式错了,value=的关键字要加引号,因为是string类型
所以在写js注入时,一定要按照js的语法来写,一个引号也不能错

你可能感兴趣的:(java+selenium使用js注入时报错javascript error: selenium is not defined)