我在用着 -
Selenium 3.0.1 与 java
火狐版本:50.1.0
geckodriver-v0.13.0-win64
我已经为我的 Web 应用程序创建了一套完整的测试套件。当我在chrome
浏览器上运行它时,所有测试都运行顺利。完全没有问题,除了浏览器兼容性测试,我切换到firefox
驱动程序并运行测试,我的测试总是失败。输入字段出现问题,我猜输入文本的速度太快了,即使文本没有填写在文本框中,但它正在单击提交按钮,因为我可以看到空白字段验证消息。我米吸了如何处理这个。我需要在 FF 上调试和运行我的整个脚本还是有任何可行的解决方案?
编辑
我有一DriverSetup
堂课,其中放置了以下代码-
public class DriverSetup
{
public static WebDriver driver;
@BeforeTest
@Parameters("browser")
public void setUp( @Optional String browser) throws IOException
{
try
{
switch(browser)
{
case "chrome":
System.out.println("Starting chrome........");
System.setProperty("webdriver.chrome.driver","D:/Application/ChromeDriver/chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(TestData.mainSiteURL);
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
ScreenCapture.passedScreenShot();
break;
case "firefox":
System.out.println("Starting Firefox........");
System.setProperty("webdriver.gecko.driver","D:/Application/geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get(TestData.mainSiteURL);
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
ScreenCapture.passedScreenShot();
break;
}
}
catch(Exception e)
{
System.out.println("Exception In : "+Thread.currentThread().getStackTrace()[1].getClassName()+"-->"+Thread.currentThread().getStackTrace()[1].getMethodName());
ScreenCapture.failedScreenShot();
}
}
}
另一个是SubmitNewContact
类
public class SubmitNewContact extends DriverSetup
{
@Test
public void submitNewContact() throws IOException
{
try
{
driver.findElement(By.linkText("Contact")).click();
driver.findElement(By.id("Name")).sendKeys(TestData.contactName);
driver.findElement(By.id("Phone")).sendKeys(TestData.contactPhone);
driver.findElement(By.id("EmailID")).sendKeys(TestData.contactEmail);
driver.findElement(By.id("message")).sendKeys(TestData.contactMessage);
ScreenCapture.passedScreenShot();
driver.findElement(By.xpath("//button[@type='submit']")).click();
ScreenCapture.passedScreenShot();
Thread.sleep(3000);
}
catch(Exception e)
{
System.out.println("Exception In : "+Thread.currentThread().getStackTrace()[1].getClassName()+"-->"+Thread.currentThread().getStackTrace()[1].getMethodName());
ScreenCapture.failedScreenShot();
}
}
}
并使用 testNG 运行这两个类 -
<test name="ExecuteTestFirefox">
<parameter name="browser" value="firefox" />
<classes>
<class name="com.testmaster.DriverSetup"/>
<class name="com.test.user.SubmitNewContact"/>
</classes>
</test>
注意:-还有一些其他类,例如SubmitNewContact
我的应用程序的每个功能并运行然后全部使用testing.xml