gpt4 book ai didi

angularjs-e2e - 如何让 Protractor 在应用程序中间接管浏览器

转载 作者:行者123 更新时间:2023-12-04 06:19:33 25 4
gpt4 key购买 nike

我已经编写了一个使用 require js 的角度项目,因此大多数 javascript 不会在登陆特定页面集之前加载。 (包括 angular.js)

在编写流程时,我不得不使用 browser.driver 代替 ptor,并且在角度组件出现之前效果很好。现在我试图找到一种方法将 ptor 的初始化压缩到 browser.driver 和在特定流程后以一定角度滚动。所以我有这样的东西

        browser.driver.getCurrentUrl().then(function(url){
ptor = protractor.getInstance();
// ptor.ignoreSynchronization = true;
ptor.get(url);
})
ptor.sleep(2000);

即使我超时,它似乎在声明后变得未定义。我应该如何在这里进行交换。并用 url 做一个 Protractor 的构造函数。无需重新加载。

------------插件--------好的,这就是我所拥有的

        searchInput = browser.driver.findElement(by.css('#searchstring')); 
searchInput.sendKeys('logan airport');
searchInput.sendKeys(protractor.Key.ENTER)//.perform();
browser.driver.sleep(6000);

browser.driver.wait(function(){ //angular loads here
return browser.driver.getCurrentUrl(function(url){
searchUrl = url;
return /screwdriver/.test(url);
});
}, 10000)
browser.driver.sleep(2000);
/*UNEXECUTED CODE HERE: Error while waiting for angular to sync with your page*/
firstItem = element.all(by.css('.itemContainer')).get(1).click();
browser.driver.sleep(10000);

这就是我现在正在做的...

            searchInput = ptor.findElement(protractor.By.css('#searchstring'));
searchInput.sendKeys('logan airport');
searchInput.sendKeys(protractor.Key.ENTER)//.perform();
ptor.sleep(6000);

ptor.wait(function(){ //this page loads angular, but stuck on white page, which with previous version this is fluent, it says angular cannot be found on the page
return ptor.driver.getCurrentUrl().then(function(url){
searchUrl = url;
return /screwdriver/.test(url);
});
}, 10000)

ptor.sleep(2000);

/*NOT EXECUTED: Error while waiting for angular to sync with your page*/
foundItems = ptor.findElement(protractor.By.css('.itemContainer'));
firstItem = foundItems.get(1).click();
ptor.sleep(2000);

两者似乎都不起作用,一个是角度不同步,另一个是角度未找到,但如果您按 f12 并输入角度,实际页面将存在角度。

最佳答案

您实际上不必使用新语法构造 ptor(在新语法中,ptor ~= browser)。 ptor.url 表示“加载此页面”,而不是“为该页面制作 Protractor ”。你可能想要这样的东西:

browser.driver.get(yourUrl);
browser.driver.wait(function() {
// Put in some test here that returns true when Angular is ready to go.
});
element(by.id('foo')); // Start using protractor here!

关于angularjs-e2e - 如何让 Protractor 在应用程序中间接管浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com