所以我有下面的java代码和selenium webdrive代码。在AddItems函数之前,代码会按预期工作。它不工作,我不能让它继续从登录功能的工作。我试着在main中调用这两个函数,我试着在登录中调用一个AddItems。我不明白我应该如何将这两个过程联系起来,这样一个过程才能继续另一个过程。我尝试了我在这里看到的:https://www.youtube.com/watch?v=ph3NJm4Z7m4&t=4472s,在1:02:44左右。
请帮助我理解函数如何使用相同的"test“并继续函数。
package TestEmagShoppingCart;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ShoppingCart {
WebDriver test;
public void Login() throws InterruptedException
{
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
WebDriver test = new ChromeDriver();
test.get("http://www.emag.ro");
test.manage().window().maximize();
//test.manage().deleteAllCookies();
//test.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
//test.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
String title = test.getTitle();
System.out.println("Titlul paginii este: "+ title);
test.findElement(By.xpath("/html/body/div[3]/nav[1]/div/div/div[3]/div/div[2]/a/span")).click();
test.findElement(By.id("email")).sendKeys("anghelalex1994@gmail.com");
Thread.sleep(1000);
test.findElement(By.xpath("/html/body/form/div[4]/div/button")).click();
Thread.sleep(1000);
test.findElement(By.id("password")).sendKeys("alex21");
test.findElement(By.xpath("/html/body/form/div[4]/div/button")).click();
//test.findElement(By.xpath("/html[1]/body[1]/div[3]/div[1]/div[1]/div[1]/ul[1]/li[5]/a[1]")).click();
//AddItems();
}
public void AddItems()
{
test.findElement(By.xpath("/html[1]/body[1]/div[3]/div[1]/div[1]/div[1]/ul[1]/li[5]/a[1]")).click();
}
public static void main(String[] args) throws InterruptedException {
ShoppingCart cart = new ShoppingCart();
cart.Login();
cart.AddItems();
}
}发布于 2018-07-31 15:17:17
请使用PageObject并从那里添加所有操作监听器:
public class EmagPageObject {
private WebDriver driver;
public EmagPageObject(WebDriver driver) {
this.driver = driver;
}
public EmagPageObject loginToApp(String user, String password) {
// Your code
return this;
}
public EmagPageObject AddItems() {
// Your code
return this;
}
}并且不要让用户thread.sleep只使用隐式等待或显式等待
发布于 2018-07-30 21:51:06
我已经自己修好了。
我已经从登录函数中删除了“new = WebDriver ChromeDriver();”,并将其作为一个全局变量,与上面所写的完全相同。
https://stackoverflow.com/questions/51595230
复制相似问题