Google chrome 如何在selenium中仅对URL的一部分使用UrlToBe

Google chrome 如何在selenium中仅对URL的一部分使用UrlToBe,google-chrome,selenium,selenium-chromedriver,webautomation,Google Chrome,Selenium,Selenium Chromedriver,Webautomation,在使用.net的Selenium Chrome驱动程序自动化中,我有两个要求 正在等待加载特定的基本URL。为此,我得到了下面的代码,如果我给出了准确的URL,它将非常有效 但我不想给出确切的URL,而是想给出基本URL,因为大多数URL都是用一些ID动态生成的。所以在我的情况下,我想匹配 我希望在URL更改之前(当用户单击某个按钮时,例如“下一步”)获取一个事件。或者,当用户在网页中输入用户名或某些条目时,我希望得到通知 我的全部要求如下: 用户将首次在自动窗口中手动输入用户名、出生日期。现在

在使用.net的Selenium Chrome驱动程序自动化中,我有两个要求

  • 正在等待加载特定的基本URL。为此,我得到了下面的代码,如果我给出了准确的URL,它将非常有效
  • 但我不想给出确切的URL,而是想给出基本URL,因为大多数URL都是用一些ID动态生成的。所以在我的情况下,我想匹配

  • 我希望在URL更改之前(当用户单击某个按钮时,例如“下一步”)获取一个事件。或者,当用户在网页中输入用户名或某些条目时,我希望得到通知
  • 我的全部要求如下:

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

    以前我使用的是Internet Explorer,在那个里我有一个beforenavigate事件,它会通知我用户要导航到其他URL。所以我习惯于读取必填字段并将其保存在数据库中

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

    getAttribute('value')可用于获取值,但如何知道用户已在该字段中输入了值

    如何实现这两个目标? 请帮帮我

    案例1:您不可能从
    org.openqa.selenium.support.ui.ExpectedConditions.java
    重写
    UrlToBe
    方法,它是一个
    静态方法。记录在案

    但是您可以尝试创建一个类似的类和自定义方法,它可能类似于
    CustomExpectedConditions.java

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

    public class CustomWebDriver extends Webdriver implements WebElement {
    
      @Override
      public void clear() {
        //  save the Url before performing the ops
      }
      // ...similarly for other actions
    }
    

    我的目的是获取用户在自动窗口中输入的用户名。是否有任何方法可以在URL更改之前监视用户名字段并复制内容。@ITresearcher:我希望它是静态字段,除非触发了操作,否则您不能在操作之前保存它吗。此外,如果没有,请更新问题中的相同内容,我们将查看具体案例的详细信息。编辑问题。我不知道如何知道用户输入了什么。你能用一个例子解释一下吗?你可以在
    值上做一个
    isEmpty()
    检查,
    getAttribute
    …这对确认用户是否输入了它没有帮助。可能用户什么时候做的,可以使用
    监听器检查。但在这两者之间进行手动交互似乎不是一个很好的做法。@nullpointer您能用一个例子解释一下吗?
    
    public class CustomWebDriver extends Webdriver implements WebElement {
    
      @Override
      public void clear() {
        //  save the Url before performing the ops
      }
      // ...similarly for other actions
    }