Я пытался попрактиковаться в Selenium и не могу протестировать функцию регистрации из-за проверки электронной почты, но каждый раз, когда я запускаю тест, он вводит все, кроме знака "@", и, очевидно, это обязательный символ ,
Это сайт, который я тестировал -> http://a.testaddressbook.com/
(Извините, если все испортилось, я впервые здесь что-то написал)
Ожидаемый результат:
yolo@test.com (отображается в поле ввода адреса электронной почты)
Фактический результат:
yolotest.com
без "@"
Файл определения шага (важная часть):
StepDef.java
И страница, которая является ссылкой на файлы определения шага:
SignUp.java
РЕДАКТИРОВАТЬ: я начал с Eclipse, а затем я перешел на IntelliJ (надеясь, что это была только проблема настроек IDE, но это не стоило - стоит попробовать).
Я также попытался добавить Unicode знака "@", он все еще не набрал "@".
Как и просили, ниже вы можете найти фрагменты кода:
SignUp.java (page)
package Pages;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
public class SignUp {
@FindBy(id = "user_email")
private WebElement userName;
@FindBy(id = "user_password")
private WebElement userPass;
public void credentials(WebDriver driver) {
Actions cred = new Actions(driver);
cred.click(userName).sendKeys("yolo@test.com").perform();
cred.click(userPass).sendKeys("Batman").perform();
}
}
StepDef.java (файл определения шага)
@Then("^I fill out fields with information$")
public void i_fill_out_fields_with_information() throws Throwable {
SignUp filldetails = PageFactory.initElements(driver, SignUp.class);
filldetails.credentials(driver);
Thread.sleep(2000);
}
РЕДАКТИРОВАТЬ (предлагаемый код):
package com.qa.quickstart.Bookthing;
import static org.junit.Assert.*;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class TestThing {
ChromeDriver driver;
String url="http://a.testaddressbook.com/sign_in";
@Test
public void test() throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Laptop\\eclipse-workspace\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(url);
WebDriverWait wait = new WebDriverWait(driver, 50);
driver.findElement(By.linkText("Sign up")).click();
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@value='Sign up']")));
WebElement email = wait.until(ExpectedConditions.elementToBeClickable(By.id("user_email")));
email.sendKeys("apple@test.com");
WebElement pass = wait.until(ExpectedConditions.elementToBeClickable(By.id("user_password")));
pass.sendKeys("banana");
Thread.sleep(15000);
}
}