Javascript 如何使用“切换”属性单击下拉列表

Javascript 如何使用“切换”属性单击下拉列表,javascript,selenium,testing,automation,protractor,Javascript,Selenium,Testing,Automation,Protractor,但这不会点击下拉列表,我的测试也不会失败。。。我不知道它出了什么问题 我还尝试通过以下方式更改定位器:元素(by.css('a.dropdown-toggle')或元素(通过.css('[translate=“ZillaMain.Select”]')但它不会在下拉列表中单击 “量角器”中有没有其他方法可以点击下拉列表?我会改进您定位下拉列表的方式(我认为您的定位器一般来说太宽了-在您的页面上下文中可能不太宽,但我没有这样的功能)并将定位器指向具有适当等待条件的执行可靠性的元素: 我们之所以使用这

但这不会点击下拉列表,我的测试也不会失败。。。我不知道它出了什么问题

我还尝试通过以下方式更改定位器:
元素(by.css('a.dropdown-toggle')
元素(通过.css('[translate=“ZillaMain.Select”]')但它不会在下拉列表中单击


“量角器”中有没有其他方法可以点击下拉列表?

我会改进您定位下拉列表的方式(我认为您的定位器一般来说太宽了-在您的页面上下文中可能不太宽,但我没有这样的功能)并将定位器指向具有适当等待条件的执行可靠性的
元素:


我们之所以使用这种XPath表达式,是因为我们不仅要针对任何下拉切换链接,还要针对“身份验证”标签后面的链接。

我通过以下更改实现了这一点:

var authDropdown = element(by.xpath("//label[. = 'Authentication']/following::label[@class = 'dropdown']/a"));
var EC = protractor.ExpectedConditions;

browser.wait(EC.elementToBeClickable(authDropdown), 5000);
authDropdown.click();

我尝试了上述更改,但仍然无法单击下拉列表。不,我没有收到任何错误。此下拉列表位于“我的应用程序测试”的登录页上,在
authDropdown中不会失败。单击()步骤,但它不会登录,因为没有单击下拉列表,也没有从下拉列表中选择选项。@soniasharma好的,快速提问-如果执行
browser.executeScript(“参数[0]。单击();”,authDropdown),会发生什么情况?仍然相同的问题下拉列表没有被单击,也不会登录。只是出于好奇,我想知道它是否会
。即使元素没有与其关联的
ng click
属性,click()
也会工作。正如您在上面的代码中所看到的,没有与下拉列表关联的
ng click
属性。这就是下拉列表未被单击的原因吗?
this.AuthDD = element(by.css('[on-toggle="toggled(open)"]'));

AuthDD.click();
var authDropdown = element(by.xpath("//label[. = 'Authentication']/following::label[@class = 'dropdown']/a"));
var EC = protractor.ExpectedConditions;

browser.wait(EC.elementToBeClickable(authDropdown), 5000);
authDropdown.click();
 this.AuthDD = element(by.css('i.angle-down-icon'));

 AuthDD.click();