欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java+Selenium調(diào)用JavaScript的方法詳解

 更新時間:2023年01月09日 08:33:38   作者:洛陽泰山  
這篇文章主要為大家講解了java在利用Selenium操作瀏覽器網(wǎng)站時候,有時會需要用的JavaScript的地方,代碼該如何實現(xiàn)呢?快跟隨小編一起學習一下吧

簡介

本文主要講解java 利用Selenium 操作瀏覽器網(wǎng)站時候,需要用的js的地方,代碼該如何實現(xiàn)。

調(diào)用JavaScript

webdriver 對于滾動條的處理需要用到 JavaScript ,同時也可以向 textarea 文本框中輸入文本( webdriver 只能定位,不能輸入文本),webdriver 中使用execute_script方法實現(xiàn) JavaScript 的執(zhí)行。

滑動滾動條

通過 x ,y 坐標滑動

對于這種通過坐標滑動的方法,我們需要知道做表的起始位置在頁面左上角(0,0),下面看一下示例,滑動 CSDN 首頁。

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
 
import java.io.IOException;
 
public class SeleniumDemo {
    private final static String webDriver = "webdriver.chrome.driver";
    private final static String webDriverPath ="E:\\chromedriver\\chromedriver.exe";
 
 
    public static void main(String[] args) throws InterruptedException, IOException {
        System.setProperty(webDriver, webDriverPath);
        WebDriver driver= new ChromeDriver();
        driver.get("https://blog.csdn.net/");
        Thread.sleep(2000);
        JavascriptExecutor jse= (JavascriptExecutor)driver;
        //滑動到距離頂部500px的位置
        jse.executeScript("window.scrollTo(0,500);");
    }
 
 
}

通過參照標簽滑動

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
 
import java.io.IOException;
 
public class SeleniumDemo {
    private final static String webDriver = "webdriver.chrome.driver";
    private final static String webDriverPath ="E:\\chromedriver\\chromedriver.exe";
 
 
    public static void main(String[] args) throws InterruptedException, IOException {
        System.setProperty(webDriver, webDriverPath);
        WebDriver driver= new ChromeDriver();
        driver.get("https://blog.csdn.net/");
        Thread.sleep(2000);
        JavascriptExecutor jse= (JavascriptExecutor)driver;
        //i要從1開始,否則 div["+i+"] 要寫成div["+(i+1)+"]
        for (int i = 1; i < 20; i++) {
            Thread.sleep(1000);
            //定位文章的元素
            WebElement element=driver.findElement(By.xpath("http://div[@class='Community']/div["+i+"]"));
            //滑動到指定元素位置
            jse.executeScript("arguments[0].scrollIntoView();", element);
        }
 
    }
 
 
}

通過循環(huán)的方式,從第一個文章的位置,依次滑倒到第20個文章的位置。

按鈕點擊

有些網(wǎng)站設置的反扒機制,通過 element.click()的方法,有時候瀏覽器頁面的元素沒有加載完之前,會報錯,必須元素不能點擊的錯誤,雖然selenium可以設置元素等待,等元素加載完畢,再點擊,但是有些點擊是由網(wǎng)頁中加載的js控制的點擊事件。也就是說,你的點擊按鈕,html\css執(zhí)行完了,在頁面上渲染出來一個點擊按鈕,但是 有一些js代碼還么加載完畢,如果你此時去點擊按鈕,就會報錯或者不執(zhí)行,主要有兩種情況,一是,按鈕的點擊事件,在這個js里寫著,js沒加載完你點擊的話會沒有反應。

二是,有些js會事件會會向網(wǎng)頁插入html的元素代碼,導致你定位好按鈕元素位置發(fā)生的變化(把按鈕元素擠到別的位置),你去點擊的時候,執(zhí)行點擊的位置,已經(jīng)不是按鈕位置了,點擊到了別的元素報錯了。

   //指定元素位置執(zhí)行js點擊事件
    jse.executeScript("arguments[0].click();", element);

打開新窗口

 //新標簽頁打開
String  js = "window.open('https://tarzan.blog.csdn.net/')";
JavascriptExecutor jse= (JavascriptExecutor)driver;
jse.executeScript(js);

到此這篇關于Java+Selenium調(diào)用JavaScript的方法詳解的文章就介紹到這了,更多相關Java Selenium調(diào)用JavaScript內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring Validation和Hibernate Validator結(jié)合國際化代碼實例

    Spring Validation和Hibernate Validator結(jié)合國際化代碼實例

    這篇文章主要介紹了Spring Validation和Hibernate Validator結(jié)合國際化代碼實例,我們需要對請求參數(shù)進行非空、長度、正確性進行校驗, 本文主要講解Spring Validation 和 Hibernate Validator, 同時整合i18n(國際化)實現(xiàn)參數(shù)校驗自動,需要的朋友可以參考下
    2023-10-10
  • springboot-curd基于mybatis項目搭建

    springboot-curd基于mybatis項目搭建

    這篇文章主要介紹了springboot-curd基于mybatis項目搭建,圍繞相關資料展開詳細內(nèi)容,希望對正在學習的你有所幫助,需要的小伙伴也可以參考一下
    2022-01-01
  • java創(chuàng)建簡易視頻播放器

    java創(chuàng)建簡易視頻播放器

    這篇文章主要為大家詳細介紹了java創(chuàng)建簡易視頻播放器的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java Socket編程(三) 服務器Sockets

    Java Socket編程(三) 服務器Sockets

    Java Socket編程(三) 服務器Sockets...
    2006-12-12
  • Java中this和super的區(qū)別及this能否調(diào)用到父類使用

    Java中this和super的區(qū)別及this能否調(diào)用到父類使用

    這篇文章主要介紹了Java中this和super的區(qū)別及this能否調(diào)用到父類使用,this和super都是Java中常見的關鍵字,下文關于兩者區(qū)別介紹,需要的小伙伴可以參考一下
    2022-05-05
  • Eclipse IDE可支持Java 14編程

    Eclipse IDE可支持Java 14編程

    這篇文章主要介紹了Eclipse IDE可支持Java 14編程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Java實現(xiàn)動態(tài)規(guī)劃背包問題

    Java實現(xiàn)動態(tài)規(guī)劃背包問題

    本文主要介紹使用java實現(xiàn)動態(tài)規(guī)劃的背包問題,詳細使用圖文和多種案例進行解析,幫助理解該算法
    2021-06-06
  • springboot aop添加日志方式

    springboot aop添加日志方式

    這篇文章主要介紹了springboot aop添加日志方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 關于springboot集成阿里云短信的問題

    關于springboot集成阿里云短信的問題

    這篇文章主要介紹了springboot集成阿里云短信的方法,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • 上傳自己的jar包到maven中央倉庫的快速操作方法

    上傳自己的jar包到maven中央倉庫的快速操作方法

    網(wǎng)絡上可以搜索到很多jar包到中央倉庫,但是都不是多適合自己的項目,于是自己動手寫個,本文檔通過sonatype上傳jar包至maven中央倉庫,Sonatype通過JIRA來管理OSSRH倉庫,具體實例代碼跟隨小編一起看看吧
    2021-08-08

最新評論