基本页面类:
protected AndroidDriver driver;
public BasePage(AndroidDriver driver) {
this.driver = driver;
}
public void waitFor(int second) {
driver.manage().timeouts().implicitlyWait(second, TimeUnit.SECONDS);
}
并在该类上实现:
public class RegistrationPage extends base.BasePage {
public RegistrationPage(AndroidDriver driver) {
super(driver);
}
public RegistrationPage alreadyExistRegistration() {
waitForVisibilityOf(button_login);
swipeAndroid(1000, 1000, 100, 1000);
waitFor(1);
swipeAndroid(1000, 1000, 100, 1000);
waitFor(1);
swipeAndroid(1000, 1000, 100, 1000);
waitFor(1);
driver.findElement(button_register).click();
driver.findElement(input_dob).click();
driver.findElement(ok).click();
driver.findElement(phone_no).sendKeys("888888888");
driver.findElement(setup_pin).sendKeys("1111");
driver.findElement(confirm_pin).sendKeys("1111");
tapAndroid(840,1832);
driver.findElement(check_term).click();
driver.findElement(btn_next).click();
waitFor(10);
Assert.assertTrue(driver.findElement(message).getText().equalsIgnoreCase("Your Number is Already Registered"));
我已经将参数编辑到50秒,但在Junit测试中没有等待。在使用AndroidDriver之前,我使用了WebDriver并且它工作得很好,但是我需要Android Driver来做TouchAction。所以我的测试用例总是失败,因为当assert运行时,它会立即找到元素,而元素还不可用。
我想你把隐含等待的概念搞错了。我们不需要每次都设置。我们需要在驱动程序初始化时设置一次,最大超时像60秒,它将等待元素时找到它。
同时,您可以使用具有大于1分钟的超时值的显式wait,
WebDriverWait wait = new WebDriverWait (driver, 120);
用它的方法,
wait.until (ExpectedConditions.visibilityOfElementLocated (By.id ("your ID")));
问题内容: 我正在学习Java Maven Selenium。我想要在Selenium中使用这样的东西。 打开网站(例如https://www.facebook.com) 单击登录的电子邮件字段 等待20秒 输入我的电子邮件 这是我的简单代码: 该代码不起作用。它只会打开Facebook,单击电子邮件字段并输入我的电子邮件ID,而不是等待10秒钟才输入我的电子邮件。 问题答案: 并且无法正常工作,
问题内容: 这是我第一次使用selenium和无头浏览器,因为我想使用ajax技术来爬网某些网页。 效果很好,但是在某些情况下,加载整个页面会花费太多时间(尤其是当某些资源不可用时),因此我必须为selenium设置超时时间。 首先,我尝试了和,但是当我设置这些超时时,如果页面未完全加载,我将不会得到任何页面源,如下代码所示: 所以我尝试使用隐式等待和条件等待,如下所示: 这次我得到了想要的内容。
问题内容: 我正在学习Java Maven Selenium。我希望在Selenium中使用。 打开网站(例如https://www.facebook.com) 单击登录的电子邮件字段 等待20秒 输入我的电子邮件 这是我的简单代码: 该代码不起作用。它只会打开Facebook,单击电子邮件字段并输入我的电子邮件ID,而不是等待10秒钟才输入我的电子邮件。 问题答案: 并且无法正常工作,他们将在指
问题内容: 我是Selenium WebDriver的新手,正在尝试了解“等待”元素出现的正确方法。 我正在测试一个带有单选按钮答案的问题的页面。选择答案时,JavaScript可能启用/禁用页面上的某些问题。 问题似乎是Selenium的“单击速度太快”,而不是等待Javascript完成。我尝试用两种方式解决此问题- 显式等待解决了该问题。具体来说,这可以解决我的问题: 但是,我 宁愿 使用隐
驱动程序级别的隐式和显式等待之间有什么区别。哪一个是驱动级等待。如果我们在代码中提供隐式和显式等待。哪一个优先。
我如何用一个显式的替换这个隐式的等待呢? driver=新ChromeDriver(功能); driver.manage().DeleteAllCookies();