Я пытаюсь создать программу для автоматизации определенных загрузок, однако при использовании Selenium-WebDriver я не могу найти элемент, необходимый для входа в систему. Я нашел правильный элемент, однако на самом деле используюWebDriver # findElement () вызывает у меня проблемы.
<input id="form-username" class="form-field" form="popup-login" type="text" name="username" value="" tabindex="1" autofocus="">
Я пробовал разные методы По-разному, но ни один из них не работает, как и другие идентификаторы, хотя безрезультатно.
Я проверил другие посты, но ни одна из них, похоже, не подходит, так как они просто извлекают информацию из определенных точек в HTML, таких как строка, где я хочу ввести в нее информацию.
public void start(String usernameInfo, String passwordInfo) {
driver = new HtmlUnitDriver();
driver.get("https://www.nexusmods.com");
WebElement username = driver.findElement(By.id("form-username"));
username.sendKeys(usernameInfo);
username.submit();
WebElement password = driver.findElement(By.id("form-password"));
password.sendKeys(passwordInfo);
password.submit();
System.out.println(driver.getTitle());
driver.quit();
}
Выводжурнал можно посмотреть здесь: https://hastebin.com/zuvebosaha.nginx
ОБНОВЛЕНИЕ: Попробовал ChromeDriver и нашел следующий код (измененный для моего использования)
public void start(String usernameInfo, String passwordInfo) {
System.setProperty("webdriver.chrome.driver","C:\\Users\\veeay\\Documents\\chromedriver.exe"); //add chrome driver path (System.setProperty("webdriver.chrome.drive",chrome driver path which you downloaded)
WebDriver driver = new ChromeDriver(); // create object of ChromeDriver
driver.manage().window().maximize(); // maximize the browser window
driver.get("https://www.nexusmods.com/"); //enter url
driver.findElement(By.id("form-username")).sendKeys(usernameInfo); //type textbox's id or name or any locater along with data in sendkeys
driver.findElement(By.id("form-password")).sendKeys(passwordInfo);
driver.findElement(By.id("btnLogin")).click();
try {
Thread.sleep(2000); //used thread for hold process
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit(); //for close browser
}
, что привело к следующему: https://hastebin.com/iliyuvucok.cs
ОБНОВЛЕНИЕ 2: Как ни странно, теперь, когда я действительно отправил вопрос, у меня все хорошо.Теперь я могу делать все, кроме выбора кнопки входа.
public void start(String usernameInfo, String passwordInfo) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\veeay\\Documents\\chromedriver.exe"); //add chrome driver path (System.setProperty("webdriver.chrome.drive",chrome driver path which you downloaded)
WebDriver driver = new ChromeDriver(); // create object of ChromeDriver
driver.manage().window().maximize(); // maximize the browser window
driver.get("https://www.nexusmods.com/Core/Libs/Common/Widgets/LoginPopUp?url=%2F%2Fwww.nexusmods.com%2F"); //enter url
driver.findElement(By.id("form-username")).sendKeys(usernameInfo); //type textbox's id or name or any locater along with data in sendkeys
driver.findElement(By.id("form-password")).sendKeys(passwordInfo);
driver.findElement(By.id("sign-in-button")).click();
try {
Thread.sleep(2000); //used thread for hold process
} catch (InterruptedException e) {
e.printStackTrace();
}
driver.quit(); //for close browser
}
, видимо, кнопка входа не взаимодействует https://hastebin.com/ahuvezoxat.cs