这是复制该问题的代码。在 chromedriver 114 之前,这一切都工作正常,但当 chrome 浏览器升级到 116 时,它就崩溃了。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
public class ChromeTest {
public static void main(String args[]) {
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/");
String title = driver.getTitle();
System.out.println(title);
driver.quit();
}
}
Run Code Online (Sandbox Code Playgroud)
该错误表明库无法访问 116 的版本文件
automation selenium-chromedriver selenium-webdriver webdrivermanager-java
前端有两个空文本框,一个用于键,另一个用于值1添加按钮和提交按钮.用户可以单击添加按钮再添加一对两个文本框,每个文本框分别代表键和值.
用户可以在文本框中随意添加任何文本作为键和任何文本作为值.提交按钮是提交最终表格.我想在angularJS中获取这些数据,并通过post请求进一步将其传递给java Map.
具体来说,转换为Json时,java中的Map看起来像这样.
{"A":"something","B":"something","C":"something","D":"value"}
Run Code Online (Sandbox Code Playgroud)
但是我无法使用angularJS从前端动态创建这样的结构.
有人可以帮我编写一段 selenium 代码,通过在延迟加载时水平滚动来查找 div 内的元素吗?
例如,在以下 URL 中,我们向右滚动后会加载元素:
我努力了 :
1. ((JavascriptExecutor) driver).executeScript("window.scrollTo(<x-corodinate>,<y-coordinate>)");
2. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element);
3. ((JavascriptExecutor) driver).executeScript("window.scrollBy(<x-corodinate>,<y-coordinate>)");
4. ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
Run Code Online (Sandbox Code Playgroud)
但并没有解决我的目的。
我使用的是 java 1.8 ,selenium jar 版本是 3.0.1 和 Firefox 50.0.2。
File driverPathFirefox = new File("PATH \\TO \\ Driver \\geckodriver.exe");
System.setProperty("webdriver.gecko.driver",driverPathFirefox.getAbsolutePath());
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(25000, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.navigate().to(URL);// URL could be the one referred in the question
WebElement scrollArea = driver.findElement(By.xpath(<Xpath of the div>));
// Capturing xpath of div from the URL …Run Code Online (Sandbox Code Playgroud)