如何在selenium中仅使用UrlToBe作为URL的一部分

时间:2016-06-09 04:53:47

标签: google-chrome selenium selenium-chromedriver webautomation

我在使用.net。

的Selenium Chrome驱动程序自动化中要求两项要求
  1. 等待加载特定基本网址。为此我得到了下面的代码,如果我给出了确切的URL,
  2. 就能完美运行
    wait.Until(ExpectedConditions.UrlToBe("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1#identifier"))
    

    但是我不想提供确切的URL,而是我想提供基本URL,因为大多数URL是使用一些ID动态生成的。所以在我的情况下,我希望匹配https://accounts.google.com

    1. 我希望在URL更改之前获得一个事件(当用户点击某个按钮时,例如下一个)。或者我希望在用户输入用户名或网页中的某些条目时收到通知。
    2. 我的完整要求如下,

      用户首次在自动窗口中手动输入用户名,出生日期。现在我的要求是当用户下次打开我的应用程序时,我想使用代码输入名称和D.O.B.

      以前我使用的是Internet Explorer,并且我在之前有一个事件,它会告诉我用户正在导航到其他网址。所以我以前读取了必填字段并将其保存在我的数据库中。

      如何在Selenium或Chrome驱动程序中执行此操作?

      WebElement.getAttribute('value')可以用来获取值,但是如何知道用户已经输入了该字段的值?

      我怎样才能实现这两个目标? 请帮我。

1 个答案:

答案 0 :(得分:1)

案例1 :您无法覆盖UrlToBe的{​​{1}}方法,它是org.openqa.selenium.support.ui.ExpectedConditions.java方法。记录here

但你可以尝试做的是创建一个类似的类和自定义方法,类似于static

CustomExpectedConditions.java

案例2 :如果您想要跟踪网址预操作,请考虑要点击的操作(),清除()等//you provide the base Url here public boolean UrlContains(String subsetUrl) { private String currentUrl = driver.getCurrentUrl(); return currentUrl != null && currentUrl.contains(subsetUrl); } 从列表here。您可以在WebElement类中覆盖这些方法,扩展CustomWebDriver并实现WebDriver接口,例如:

WebElement