Selenium 有没有一种方法可以同时使用量角器和硒?

Selenium 有没有一种方法可以同时使用量角器和硒?,selenium,protractor,Selenium,Protractor,我有一个正在测试的应用程序,它有一个iFrame,Angular应用程序被注入其中。我的测试套件是JavaSelenium,我发现在angular应用程序中操纵控件非常困难 我单独使用了量角器和硒,但在这种情况下,我发现很难找到解决方案 我的问题是: 有没有一种方法可以让我在切换到iFrame并完全在selenium中操作控件之前完全等待角度负载 如果没有,是否有一种方法或任何人有任何工作,只有在角度应用程序部分,我们可以使用量角器脚本?(基本上我是问量角器和硒套件是否可以携手共进?) 非常感谢

我有一个正在测试的应用程序,它有一个iFrame,Angular应用程序被注入其中。我的测试套件是JavaSelenium,我发现在angular应用程序中操纵控件非常困难

我单独使用了量角器和硒,但在这种情况下,我发现很难找到解决方案

我的问题是:

  • 有没有一种方法可以让我在切换到iFrame并完全在selenium中操作控件之前完全等待角度负载
  • 如果没有,是否有一种方法或任何人有任何工作,只有在角度应用程序部分,我们可以使用量角器脚本?(基本上我是问量角器和硒套件是否可以携手共进?)

  • 非常感谢您的帮助。

    我们还使用Selenium和java自动化Angularjs应用程序。我们已经编写了自己的同步和等待加载函数,如下所示:

    public void Sync()
            {
                //waitForLoading();
                try
                {
                 JavascriptExecutor js = (JavascriptExecutor)driver;   
                 WebDriverWait wait = new WebDriverWait(webDriver, 300);//timeoutInSeconds
                 wait.Until(js.executeScript("return document.readyState").toString().equals("complete"));
                    Thread.sleep(4000);
    
                }
                catch
                {
                    Thread.sleep(16000);
                }
            }
    
    
    //Another version of the same function based on time based polling to make it more dynamic
    public void checkPageIsReady() {
    
      JavascriptExecutor js = (JavascriptExecutor)driver;
    
    
      //Initially bellow given if condition will check ready state of page.
      if (js.executeScript("return document.readyState").toString().equals("complete")){ 
       System.out.println("Page Is loaded.");
       return; 
      } 
    
      //This loop will rotate for 25 times to check If page Is ready after every 1 second.
      //You can replace your value with 25 If you wants to Increase or decrease wait time.
      for (int i=0; i<25; i++){ 
       try {
        Thread.sleep(1000);
        }catch (InterruptedException e) {} 
       //To check page ready state.
       if (js.executeScript("return document.readyState").toString().equals("complete")){ 
        break; 
       }   
      }
    }
    
    public void Sync()
    {
    //waitForLoading();
    尝试
    {
    JavascriptExecutor js=(JavascriptExecutor)驱动程序;
    WebDriverWait wait=newwebdriverwait(webDriver,300);//超时秒
    等待.Until(js.executeScript(“return document.readyState”).toString().equals(“complete”);
    睡眠(4000);
    }
    抓住
    {
    睡眠(16000);
    }
    }
    //该函数的另一个版本基于基于时间的轮询,使其更具动态性
    公共作废检查页已就绪(){
    JavascriptExecutor js=(JavascriptExecutor)驱动程序;
    //如果条件将检查页面的就绪状态,则首先给出以下条件。
    如果(js.executeScript(“return document.readyState”).toString()等于(“complete”){
    System.out.println(“页面已加载”);
    返回;
    } 
    //该循环将每1秒旋转25次,以检查页面是否准备就绪。
    //如果要增加或减少等待时间,可以将值替换为25。
    
    对于(int i=0;我看了一下——谢谢你给出答案。但是,有一个问题——你对使用selenium自动化角度应用程序有什么看法?我不建议这样做。如果是angularJS,那么你应该只使用量角器。在我们的情况下,选择它有一些商业原因。但我不明白为什么我们没有o在量角器中使用javascript作为语言。我希望在ruby或python中有量角器的移植。