草庐IT

selenium

全部标签

javascript - 如何处理 Protractor 中未找到元素的异常

就像Seleniumwebdriver为Java提供各种异常处理一样,我们有什么方法可以使用Protractor实现同样的功能。如果我们想处理元素未找到异常,那么使用Protractor的最佳方法是什么? 最佳答案 这个问题的答案isnowinProtractor'sFAQ如何捕获ElementNotFound等错误?WebDriverthrowserrorswhencommandscannotbecompleted-e.g.notbeingabletoclickonanelementwhichisobscuredbyanother

javascript - Protractor 中 element(...) 和 element(...).getWebElement() 之间的区别

为什么我们需要element(...).getWebElement()而不是element(...)而两者的工作方式完全相同为什么两个API用于相同的功能 最佳答案 Protractor是WebDriverJS的便捷包装器-javascriptselenium绑定(bind)。element(...)会导致ElementFinderinstance在Protractor中引入element(...).getWebElement()将导致WebDriverJS的WebElement实例。基本上,这使您可以访问纯“裸机”WebEleme

javascript - 使用 css 定位器在 Protractor 中定位第二个、第三个、第四个……第八个元素

我一直在使用Protractor进行测试,除了通过css之外无法引用该元素,因为它只具有给定的类属性。问题是有超过7个元素具有此类名称。因此我使用语法element.all(by.css('h4.ng-binding')).first();对于第一个,它工作正常,但对于其他人,它不起作用!我使用与第一个逻辑相同的逻辑。这是我的代码片段,供其他人找到它们。element.all(by.css('h4.ng-binding')).second();element.all(by.css('h4.ng-binding')).third();element.all(by.css('h4.ng-b

javascript - 计数()与 Protractor 中的长度

根据文档,有两种方法可以获取ElementArrayFinder中有多少元素(element.all()调用的结果):$$(".myclass").length,已记录here:...thearrayhaslengthequaltothelengthoftheelementsfoundbytheElementArrayFinderandeachresultrepresentstheresultofperformingtheactionontheelement.$$(".myclass").count(),已记录here:Countthenumberofelementsrepresent

javascript - 使用 Selenium IDE 访问 JavaScript 变量

我想知道是否可以使用Selenium访问页面JavaScript变量。我有一个使用附加到窗口对象的变量的应用程序。它具有全局范围,我可以使用window._myvar、window['_myvar']、_myvar、this访问它['_myvar'],this._myvar取决于上下文。所以我试图让Selenium回应它。据我了解,在SeleniumIDE中,一切运行的上下文都是selenium。我尝试执行this.browserbot.getCurrentWindow()._myvar、this.browserbot.getCurrentWindow()[_myvar]无济于事。我遇

javascript - Protractor 的隐式等待与显式等待如何相互作用?

当隐式等待少于显式等待时,就会发生误解:vartimeOut=5000;varsearch=element(by.xpath(`//*[@name='qwer']`));browser.manage().timeouts().implicitlyWait(4000);browser.ignoreSynchronization=true;describe('ProtractorTest',function(){beforeEach(function(){browser.get('https://www.google.com.ua');});it('EC',function(){conso

javascript - Protractor 获取模型值

我是ProtractorJS的新手。我想要做的是尝试获取禁用的输入元素的值。此输入元素绑定(bind)到模型。最初这个输入元素是空的;然后在执行某些操作后更新模型值(并因此显示在输入元素中)。我需要获得该值,我该怎么做?我的输入元素是:我正在尝试通过以下方式获取值(value):element(by.model("Promotion.PrometricID")).getAttribute('value');但是每当我在控制台中写入值时,它都会给我“[object][object]”。谁能告诉我如何在此文本框或模型中查找值? 最佳答案

javascript - 使用 Selenium、JavaScript 和 Node.js 检查元素是否存在

在我执行这一行之前,我试图检查一个元素是否存在:driver.findElement(webdriver.By.id('test'));如果文档中不存在idtest,即使在tryblock中,也会抛出错误“没有这样的元素”。我找到了Java的答案,您可以在其中检查大小是否为0,但在Node.js中,这会在我检查大小之前引发错误:抛出错误;^NoSuchElementError:没有这样的元素 最佳答案 您可以利用then()的可选错误处理程序参数。driver.findElement(webdriver.By.id('test'))

javascript - 如何访问 Protractor 测试的 chromedriver 日志

我看到chromedriver可以输出日志文件(https://sites.google.com/a/chromium.org/chromedriver/logging)本页显示了如何在直接执行exe时进行设置:chromedriver.exe--verbose--log-path=chromedriver.log但是我不知道如何在Protractor中设置它我当前的protractor.conf.jsrequire('babel/register');exports.config={framework:'jasmine2',seleniumServerJar:'./node_modu

javascript - 使用 Protractor 检查浏览器控制台中没有错误

我正在使用Protractor来测试AngularJS我想检查在测试结束时没有未捕获的异常发生并打印到浏览器控制台。有没有简单的方法可以做到这一点? 最佳答案 如果您将Protractor与Jasmine一起使用,请使用以下代码:afterEach(function(){browser.manage().logs().get('browser').then(function(browserLog){expect(browserLog.length).toEqual(0);});});如果没有控制台错误,这将通过测试用例。如果有任何控