最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

簡(jiǎn)介

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

調(diào)用JavaScript

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

滑動(dòng)滾動(dòng)條

通過 x ,y 坐標(biāo)滑動(dòng)

對(duì)于這種通過坐標(biāo)滑動(dòng)的方法,我們需要知道做表的起始位置在頁面左上角(0,0),下面看一下示例,滑動(dòng) 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;
        //滑動(dòng)到距離頂部500px的位置
        jse.executeScript("window.scrollTo(0,500);");
    }
 
 
}

通過參照標(biāo)簽滑動(dòng)

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+"]"));
            //滑動(dòng)到指定元素位置
            jse.executeScript("arguments[0].scrollIntoView();", element);
        }
 
    }
 
 
}

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

按鈕點(diǎn)擊

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

二是,有些js會(huì)事件會(huì)會(huì)向網(wǎng)頁插入html的元素代碼,導(dǎo)致你定位好按鈕元素位置發(fā)生的變化(把按鈕元素?cái)D到別的位置),你去點(diǎn)擊的時(shí)候,執(zhí)行點(diǎn)擊的位置,已經(jīng)不是按鈕位置了,點(diǎn)擊到了別的元素報(bào)錯(cuò)了。

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

打開新窗口

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

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

相關(guān)文章

  • maven中pom.xml詳細(xì)介紹

    maven中pom.xml詳細(xì)介紹

    最近在學(xué)習(xí)maven,這篇文章主要介紹了maven中pom.xml詳細(xì)介紹,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Java中equals()知識(shí)點(diǎn)總結(jié)

    Java中equals()知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享的是關(guān)于Java中equals()知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-03-03
  • Java容器類的深入理解

    Java容器類的深入理解

    本篇文章是對(duì)Java容器類進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 手把手教你用Java給暗戀對(duì)象發(fā)送一份表白郵件

    手把手教你用Java給暗戀對(duì)象發(fā)送一份表白郵件

    隨著我們學(xué)習(xí)java的深入,也漸漸發(fā)現(xiàn)了它的一些樂趣,比如發(fā)送郵件,下面這篇文章主要給大家介紹了關(guān)于如何利用Java給暗戀對(duì)象發(fā)送一份表白郵件的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Java Swing JFrame窗口的實(shí)現(xiàn)

    Java Swing JFrame窗口的實(shí)現(xiàn)

    這篇文章主要介紹了Java Swing JFrame窗口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 一篇文章帶你了解Java基礎(chǔ)-接口

    一篇文章帶你了解Java基礎(chǔ)-接口

    這篇文章主要介紹了java接口基礎(chǔ)知識(shí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • Mybatis-plus新版本分頁失效PaginationInterceptor過時(shí)的問題

    Mybatis-plus新版本分頁失效PaginationInterceptor過時(shí)的問題

    這篇文章主要介紹了Mybatis-plus新版本分頁失效,PaginationInterceptor過時(shí)問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 如何設(shè)置Spring Boot測(cè)試時(shí)的日志級(jí)別

    如何設(shè)置Spring Boot測(cè)試時(shí)的日志級(jí)別

    Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。下面我們來一起學(xué)習(xí)一下吧
    2019-06-06
  • Java之BigDecimal實(shí)現(xiàn)詳解

    Java之BigDecimal實(shí)現(xiàn)詳解

    這篇文章主要介紹了Java之BigDecimal實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 如何解決springboot上傳文件路徑找不到的問題

    如何解決springboot上傳文件路徑找不到的問題

    這篇文章主要介紹了如何解決springboot上傳文件路徑找不到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評(píng)論

彭阳县| 旅游| 浑源县| 抚顺县| 普陀区| 报价| 阿克| 温泉县| 乐都县| 曲松县| 灵丘县| 屯昌县| 平原县| 时尚| 沈丘县| 双城市| 石河子市| 孝感市| 灵石县| 虞城县| 延川县| 连云港市| 惠来县| 前郭尔| 凤阳县| 志丹县| 藁城市| 芜湖县| 铜鼓县| 纳雍县| 师宗县| 江城| 绩溪县| 隆尧县| 乌海市| 朝阳区| 油尖旺区| 吉木萨尔县| 赤峰市| 综艺| 宜昌市|