如何解决为什么相同的硒代码有时不起作用?
我在Java中使用Selenium Webdriver。当我运行代码时,它有时可以按我的意愿工作,有时会发生错误。我的网路速度稳定。是什么原因?
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ByIdOrName;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
public class AytomationPractiseRegistration {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver","C:\\Selenium jar\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://automationpractice.com/");
By locator=By.className("login");
WebElement element=driver.findElement(locator);
element.click();
WebDriverWait wait = new WebDriverWait(driver,5);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("email_create")));
driver.findElement(By.id("email_create")).sendKeys("debasishgupta2015@gmail.com");
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("SubmitCreate")));
driver.findElement(By.id("SubmitCreate")).click();
Thread.sleep(5000);
String pageName=driver.findElement(By.className("page-heading")).getText();
System.out.println("Page Heading:"+pageName);
Thread.sleep(5000);
//wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("id_state")));
WebElement elementState=driver.findElement(By.name("id_state"));
Select selectState=new Select(elementState);
selectState.selectByVisibleText("Georgia");
}
}
解决方法
我可能取决于不同的因素:
- 互联网速度
- 您正在访问的服务器的速度
- 您正在使用的机器的速度
- 代理,vpn等网络障碍
可能是同步问题。您可以使用等待来避免此类问题。
WebDriver中有两种等待类型。
- 隐式等待:整个测试脚本中每个连续测试步骤之间的等待时间。
- 显式等待用于等待直到满足特定条件或经过了最大时间。
可通过链接获取更多详细信息: Selenium Waits
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。