gpt4 book ai didi

java - Selenium 在第二次测试中未识别元素

转载 作者:太空宇宙 更新时间:2023-11-04 13:23:09 24 4
gpt4 key购买 nike

我尝试使用 selenium + TestNG 创建的每个测试脚本都会发生这种情况。 在第一个 @test 方法之后,webdriver 永远不会识别其余 @test 方法上的元素,并始终将它们声明为失败。

为了简单起见,以下是场景:网络驱动程序加载一个页面,并在第一个 @test(priority=0) 中搜索 google 登录按钮并单击它以加载 google 登录屏幕。在第二个 @test(priority=1) 中,我试图通过 ID 来识别电子邮件文本字段,但我总是遇到未找到元素的异常。但是,如果我将代码从第二个测试移至第一个测试,它会成功执行

这是一段代码。 enterCredentials() 方法是问题发生的地方。

public class CSgoogleLogin extends CloudDriver {

@Test(priority=0)
public void attemptLogin(){

WebElement myDynamicElement = (new WebDriverWait(driver, 100))
.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='ROOT-2521314']/div/div[2]/div/div[1]/div/div/div/center/div[3]/div[2]/div[1]/div/span/img")));
driver.findElement(By.xpath("//*[@id='ROOT-2521314']/div/div[2]/div/div[1]/div/div/div/center/div[3]/div[2]/div[1]/div/span/img")).click();
}

@Test(priority=1)
public void enterCredentials(){
WebElement myDynamicElement;
if(!driver.findElement(By.id("Email")).isDisplayed()){
myDynamicElement = (new WebDriverWait(driver, 1))
.until(ExpectedConditions.presenceOfElementLocated(By.id("Email")));
}
//Entering Username
driver.findElement(By.id("Email")).sendKeys("xyz");
driver.findElement(By.id("next")).click();

myDynamicElement = (new WebDriverWait(driver, 1))
.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='Passwd']")));
//Entering Password
driver.findElement(By.id("Passwd")).sendKeys("xyz");
driver.findElement(By.id("signIn")).click();
}}

以下是CloudDriver类。更重要的是,在调试运行时,代码可以正确执行。

public class CloudDriver {

protected WebDriver driver = null;

@BeforeSuite
public void setUP(){

driver = new FirefoxDriver();
driver.get("http://apps3.thecloudstream.com/");
}

@AfterSuite
public void Closing(){

driver.quit();
}

}

最佳答案

您能显示“CloudDriver”类的代码吗?

查看当前代码,我没有发现任何失败。您可以尝试在 @BeforeClass 方法中设置驱动程序实例吗?如下所示:

public class CSgoogleLogin extends CloudDriver {
Webdriver driver = null;
@BeforeClass
public void setUp(){
driver = getDriverInstance();//Get this instance from the super class.
}
@Test(priority=0)
public void attemptLogin(){}
@Test(priority=1)
public void enterCredentials(){}

关于java - Selenium 在第二次测试中未识别元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com