java+selenium控制浏览器

pom依赖:

 <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.0.0-beta-4</version>
        </dependency>

驱动下载:

https://registry.npmmirror.com/binary.html?path=chromedriver/

如果版本超过114版本,点击驱动下载

118版本:118版本驱动下载

代码:

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;

import java.util.List;
import java.util.Set;

/**
 * @author : zhaoxu
 */
public class test {
    public static void main(String[] args) throws InterruptedException {
        String findName = "xxx";
        System.setProperty("webdriver.chrome.driver", "D:\\idea_workspace\\chrome-util\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        //窗口最大化
//        driver.manage().window().maximize();

        //舞蹈
        driver.get("https://www.douyu.com/g_dance");
        //lol
//        driver.get("https://www.douyu.com/g_LOL");

        JavascriptExecutor js = (JavascriptExecutor) driver;
        //循环下拉
        for (int i = 0; i < 2; i++) {
            js.executeScript("scrollTo(0," + (i * 500) + ")");
            Thread.sleep(1000);
        }
        List<WebElement> elements = driver.findElements(By.cssSelector("a.DyListCover-wrap"));
        WebElement findElement = null;
        for (WebElement webElement : elements) {
            WebElement nameElement = webElement.findElement(By.cssSelector("div.DyListCover-userName"));
            String name = nameElement.getText();
            if (name.contains(findName)) {
                findElement = webElement;
                break;
            }
        }
        findElement.click();
        Thread.sleep(1000);
        String href = findElement.getAttribute("href");
//        js.executeScript("window.open();");

        driver.switchTo().window(getNewestWindowHandle(driver));

//        driver.manage().window().maximize();

        //登录
        Actions actions = new Actions(driver);
        driver.findElement(By.cssSelector("span.MuteStatus-isLog")).click();
        Thread.sleep(1000);
        driver.switchTo().frame("login-passport-frame");
        driver.findElement(By.cssSelector(".inputLoginBtn")).click();
        driver.findElement(By.cssSelector("a[title='QQ帐号登录']")).click();
        driver.switchTo().window(getNewestWindowHandle(driver));
        driver.switchTo().frame("ptlogin_iframe");
        try {
            driver.findElement(By.cssSelector("span.img_out")).click();
        }catch (Exception e){
            driver.findElement(By.cssSelector("span.img_out_focus")).click();
        }

        Thread.sleep(1000);
        driver.switchTo().window(closeOthers(driver));
        Thread.sleep(5000);
        String[] words = {"牛逼", "66666666666", "厉害厉害", "yyds", "太帅了"};
        while (true) {
            String word = words[(int) ((Math.random() * (4 - 0 + 1)) + 0)];
            driver.findElement(By.cssSelector(".ChatSend-txt")).sendKeys(word);
            actions.sendKeys(Keys.ENTER);
            actions.perform();
            Thread.sleep(5000);
        }

    }

    static String getNewestWindowHandle(WebDriver driver) {
        String handle = null;
        for (String windowHandle : driver.getWindowHandles()) {
            handle = windowHandle;
        }
        return handle;
    }

    static String closeOthers(WebDriver driver) {
        String handle = null;
        int i = 1;
        Set<String> windowHandles = driver.getWindowHandles();
        int size = windowHandles.size();
        for (String windowHandle : windowHandles) {
            if (i < size) {
                driver.switchTo().window(windowHandle);
                driver.close();
            } else {
                handle = windowHandle;
            }
            i++;
        }
        return handle;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值