作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在收集机器学习数据,并且正在努力抓取社交网络页面之一的数据。我一直很好,直到第 12 个追随者,然后就崩溃了。
方法 driver.findElement(By.xpath... 在第 13 个元素上停止工作,即使它正在滚动。任何人都可以指出它不可见的原因吗?这就是我到目前为止所想到的:
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Testing {
public static ChromeOptions options;
public static WebDriver driver;
public static void setup() {
System.setProperty("webdriver.chrome.driver", "resources/Drivers/chromedriver.exe");
options = new ChromeOptions();
driver = new ChromeDriver(options);
driver.get("https://www.instagram.com/accounts/login/");
}
public static void login() throws Exception {
String name = "xxxxxx";
String password = "xxxxxxx";
Thread.sleep(2000);
driver.findElement(By.name("username")).sendKeys(name);
driver.findElement(By.name("password")).sendKeys(password);
driver.findElement(By.tagName("form")).click();
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.presenceOfElementLocated(By.linkText("See All")));
driver.get(String.format("https://www.instagram.com/officialrickastley/"));
driver.findElement(By.partialLinkText("follower")).click();
try {
Thread.sleep(3000);
for (int j = 1; j < 1000; j += 11) {
System.out.println("j " + j);
WebElement element = driver.findElement(By.xpath(("/html/body/div[4]/div/div[2]/ul/div/li[" + (j) + "]/div/div[2]/div[1]/div/div/a")));
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.perform();
for (int i = 1; i < 12; i++) {
System.out.println("user: " + i + " " + driver.findElement(By.xpath(("/html/body/div[4]/div/div[2]/ul/div/li[" + (i + j) + "]/div/div[2]/div[1]/div/div/a")))
.getAttribute("title"));
Thread.sleep(300);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
driver.close();
}
}
}
最佳答案
请尝试添加显式等待,直到元素可见,然后执行所需的操作。
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("ur xpath here")));
关于java - Selenium Instagram 关注者抛出陈旧元素引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61326951/
我不明白文档 here 对我来说,令人困惑的一点是:为什么要在响应上设置 etag 或 last_modified?客户端不是发送 etag 和 if-modified-since header 的人
所以我使用 Selenium 抓取链接。我可以用循环打印我的链接,但我无法导航到它们,因为我收到以下错误: selenium.common.exceptions.StaleElementReferen
这是一个非常奇怪的问题。今天 AS (1.4) 停止在我的项目中正确地重新创建调试 apk: 运行项目时,任何XML 更改都不会反射(reflect)在代码中 对 Java 代码的更改正在传播,即使
简介 我不知道这是一个错误还是我完全遗漏了什么。 我有一个项目(Windows 服务),我们称它为 WINSERV。我有 3 个 DLL,这取决于它们来自 3 个独立的项目(项目 A、B、C)。但是
我是一名优秀的程序员,十分优秀!