从量角器中的tab中获取元素

时间:2017-11-16 17:20:04

标签: javascript selenium protractor

vec.shape
>>> (3,)
len(vec[0]) # all 3 rows of vec have 150 columns
>>> 150
np.reshape(vec, (3,150))
>>> ValueError: cannot reshape array of size 3 into shape (3,150)

如何从量角器中的标签中找到上面的第一个元素? Tab有15个元素,这一个上面是tab的第一个元素。我想点击元素,无论哪一个。

<div class="tab"><br>
  <div class="main-icon-container">
    <div class="flex-container">
         <!---->
      <div class="flex-item text-center" 
         ng-repeat="icon in ctrl.data.icons | filter: tab" 
           ng-class="{ 'icon-selected': ctrl.data.selectedIcon === icon.icon }" 
              ng-click="ctrl.data.selectIcon(icon.icon)">
               <div class="icon-container">
                 <span class="cursor icon icon-location_apartment_block grey-bg">::before
            </span>
         </div>
       <p> Apartment block </p>
     </div>
    <!---->

2 个答案:

答案 0 :(得分:1)

不完全确定,如果我的问题是正确的,但在我看来cssContainingText()应该是您的首选。

您的量角器代码应如下所示:

element(by.cssContainingText('div.tab p', ' Apartment block ')).click();

<强>更新

因为有一个click-blocking-element(可能只在页面加载期间),Protractor首先需要等待这个元素消失。

因此,似乎需要使用ExpectedConditions

var EC = protractor.ExpectedConditions;
browser.wait(EC.invisibilityOf($('div.click-block')),5000);
element(by.cssContainingText('div.tab p', ' Apartment block ')).click();

答案 1 :(得分:0)

伙计,您可以使用XPath,并按照HTML文档的方式进行讨论,这需要更多的工作,但有时这是唯一的方法。

FindElement(By.XPath(//tagname//tagname[@atrinbuto: value]));

你可以用它来获得你想要的元素