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;
}
}