2016-10-05 92 views
1

我正在嘗試改進我的Selenium技能,對於此任務,我嘗試單擊按表格元素名稱選擇它的方式。Selenium,Python,無法通過檢查表單項來點擊按鈕項目名稱

例如,在這種情況下,我想查找EB Trial 2,然後單擊與此相關的按鈕import

<tr ng-repeat="event in bcEvents" class="ng-scope"> 
      <td> 
       <div class="dib fxac"> 
        <i class="icon-event fs32 text-light-blue mr15"></i> 
        <div class="event-inner"> 
         <a href="" class="link link-underline db ng-binding">EB Trial2</a> 
         <span class="db fs-small text-light-blue ng-binding">11/15/2016</span> 
        </div> 
       </div> 
      </td> 
      <td ng-switch="bc_source"> 
       <!-- ngSwitchWhen: 2 --><div ng-switch-when="2" class="ng-scope"> 
        <a href="" ng-click="import_bc_event(event)" class="btn btn-icon btn-orange"> 
         <i class="icon icon-eventbrite-icon"></i> Import 
        </a> 
       </div> 
       <!-- ngSwitchWhen: 8 --> 
       <!-- ngSwitchWhen: A --> 
       <!-- ngSwitchWhen: 9 --> 
       <!-- ngSwitchWhen: B --> 
      </td> 

      <!-- ngIf: bc_source != 2 --> 
     </tr> 

我嘗試XPath去實現它,但它沒有工作

driver.find_element_by_xpath("//td[contains(text(),'EB Trial2')]/preceding-sibling::td[1]").click() 

我無法理解了它是如何做到這一點

任何人可以幫助我這個?

+0

請發表您使用什麼錯誤,你所遇到的代碼等。 – JeffC

+0

我嘗試通過XPath訪問它,但它沒有工作driver.find_element_by_xpath(「// td [contains(text(),'EB Trial2')]/preceding-sibling :: td [1]」)。click ) 喜歡這個。我無法弄清楚如何去做。 – ogul

回答

0

I want to locate EB Trial 2 then click the import button which is related to that

你應該嘗試使用xpath爲:

driver.find_element_by_xpath(".//td[descendant::a[text()='EB Trial2']]/following-sibling::td//a[normalize-space(.)='Import']").click() 
+1

這很好用!非常感謝 – ogul

+0

順便說一句,我試圖等待,直到按鈕可點擊這個代碼元素= WebDriverWait(驅動程序,60).until( EC.element_to_be_clickable((By.XPATH,「」)),但它給了我一個未知的錯誤:Element在很多時候點不可點擊 – ogul