Я пробую новый способ работы с селеном.Ранее я использовал soapui в качестве IDE и перехожу к intellij.В реальной IDE все немного по-другому, и я не понимаю, что я делаю неправильно.Я думаю, что это как-то связано с Что такое 'свойства' в Groovy? , но я не слишком уверен, поэтому здесь возникает довольно большой вопрос:
ниже моя страница
package pages
import org.openqa.selenium.By
import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement
class homePage{
WebDriver driver
homePage(WebDriver driver){
this.driver=driver
}
By openLogin=By.cssSelector("#mainLoginBtn")
By user=By.cssSelector("#userId")
By pin =By.cssSelector("#password")
By go = By.cssSelector("#loginBtn")
WebElement loginBox(){
return driver.findElement(openLogin)
}
WebElement pin(){
return driver.findElement(pin)
}
WebElement userName(){
return driver.findElement(user)
}
WebElement submitLogin(){
return driver.findElement(go)
}
}
ниже приведен мой тестовый пример:
package tests
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.Logger
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import org.testng.annotations.AfterTest
import org.testng.annotations.BeforeTest
import org.testng.annotations.Test
import pages.homePage
class login{
private static final Logger log = LogManager.getLogger(login)
WebDriver driver
@BeforeTest
void setup(){
System.setProperty("webdriver.chrome.driver","c:\\drivers\\chromedriver.exe")
WebDriver driver = new ChromeDriver()
driver.get("https://somewebsite")
}
@Test
void login2(){
homePage Home = new homePage(driver)
Home.loginBox().click()
Home.userName().sendKeys("user")
Home.pin().sendKeys("user")
Home.submitLogin().click()
log.info "it worked"
}
@AfterTest
void kill(){
driver.close()
driver.quit()
}
}
Поэтому, когда я запускаю login2 (), драйвер открывает указанный сайт и сразу же выдаст мне ошибку groovy.lang.MissingPropertyException: No such property: Home for class: tests.login
.Это там в методе, что я делаю не так?
Я пытался добавить homePage Home
вне метода, но безрезультатно.Я не уверен, поможет ли это, но вот мой файл Gradle:
plugins {
id 'groovy'
}
group 'someRandomName'
version '1.0-SNAPSHOT'
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
ext {
seleniumVersion = '3.141.59'
}
test {
useTestNG()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
testCompile group: 'org.testng', name: 'testng', version: '7.0.0'
testCompile "org.seleniumhq.selenium:selenium-support:${seleniumVersion}"
testCompile group: 'io.appium', name: 'java-client', version: '7.2.0'
testCompile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: "${seleniumVersion}"
testCompile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: "${seleniumVersion}"
testCompile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver', version: "${seleniumVersion}"
testCompile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.12.1'
testCompile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.12.1'
}