Это еще один вопрос о Селене и щелчке. Я боролся около двух дней и не могу заставить его работать - я пробовал ответы в Интернете, и теперь мне нужны согласованные усилия. Заранее спасибо!!Проблема с селеной, Java, скриншотами и кнопками с кнопками
Я работаю на следующем сайте http://144.76.109.38/peTEST - это может помочь, если вы хотите повторить мои шаги.
Я пытаюсь заполнить форму для входа, а затем нажмите «Войти» и просмотрите страницу ответов.
Вот мой код:
import java.io.File;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.Writer;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.Select;
public class toJava {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver","/home/tallen/RTI/lib/geckodriver/geckodriver");
WebDriver driver = new FirefoxDriver();
driver.get("http:144.76.109.38/peTEST");
File SF2 = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try{
FileUtils.copyFile(SF2, new File("./out-004.png"));
}catch(IOException ioe){
System.out.println("There was an IO error");
}
driver.findElement(By.id("user_login_name")).click();
WebElement WE4 = driver.findElement(By.id("user_login_name"));
WE4.sendKeys("Superuser");
driver.findElement(By.id("user_password")).click();
WebElement WE6 = driver.findElement(By.id("user_password"));
WE6.sendKeys("Jkerouac1!");
WebElement WE7 = driver.findElement(By.xpath(".//*[@type='button'][@onclick='login()'][@value='Login']"));
WE7.sendKeys(Keys.ENTER);
File SF8 = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try{
FileUtils.copyFile(SF8, new File("./out-005.png"));
}catch(IOException ioe){
System.out.println("There was an IO error");
}
driver.quit();
}
}
Поэтому в основном я открывая страницу, сделав скриншот ввода имени пользователя и пароля, нажав Логин, а затем с другой снимок.
Компиляция и прогон на этом являются чистыми - это не исключение и никаких проблем. Я даже получаю два скриншота. На первом снимке экрана отображается страница входа - без ввода данных. На втором скриншоте отображается заполненная страница входа в систему, кнопка, которую я хочу щелкнуть, но не «приветственная страница», которую вы получите, если вы успешно войдете в систему. На скриншоте показана отмеченная кнопка, я знаю, что нашел элемент , Я даю информацию для входа в скрипт, если вы хотите попробовать сначала с Selenium.
Почему кнопка входа в систему не нажата. Я попытался щелкнуть, выполнить и т. Д. Безрезультатно. Я даже попытался вставить неявные ожидания - все равно ничего.
Я пробовал использовать расширенные способы взаимодействия - и все равно ничего.
Я довольно новичок в Selenium и Java, и я надеюсь, что это просто что-то глупое, что я пропускаю. Но, просмотрев через Интернет, решения там просто не помогают.
Я работаю на Debian-70-свистящие 64-LAMP
Моего Селен Библиотека от клиента комбинированного 3.0.1-nodeps.jar
Моего Geckodriver является v0.11.1-linux64
Спасибо за помощь !!!
Предполагая, что инструкция для нажатия кнопки входа в систему - это 'WE7.sendKeys (Keys.ENTER)', почему вы отправляете клавишу Enter на кнопку вместо вызова 'click()' на ней так же, как и с ' user_login_name' и 'user_password'? Я не обязательно говорю, что это неправильно (я не знаю, и я не проверял), но вместо этого я просто 'click()' it. Кроме того, почему вы вызываете 'click()' в полях 'user_login_name' и' user_password'? Просто 'sendKeys' им. – SantiBailors
Hi SantiBailors - это всего лишь эволюция. Я попытался щелкнуть(), и это не сработало. Я видел этот намек, размещенный в другом месте в сети, и поэтому я попробовал его. Он работает - то есть, он не создает никаких проблем, но снимок экрана по-прежнему неверен, что означает, что щелчок не занял. Благодаря!!! –