给定的html为:
<a href="#/provider_data_files/create" ng-click="providerDataFileCtrl.showAddProviderDataFileModal()" class="btn btn-primary pull-right">
<i class="fa fa-plus btn-icon"></i>
Add Provider Data File
</a>
所需的<a>
个 node 由两个子 node 组成:
- A 100 node
- 具有文本100的Text node
解
要通过元素的可见文本(即101)来定位元素,您可以使用以下locator strategies之一:
使用PARTIAL_LINK_TEXT:
element = driver.find_element(By.PARTIAL_LINK_TEXT, "Add Provider Data File")
使用XPATH:
element = driver.find_element(By.XPATH, "//a[contains(., 'Add Provider Data File')]")
要找到103元素,您需要对visibility_of_element_located()求导WebDriverWait,您可以使用以下locator strategies之一:
使用PARTIAL_LINK_TEXT:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.PARTIAL_LINK_TEXT, "Add Provider Data File")))
使用XPATH:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[contains(., 'Add Provider Data File')]")))
Note:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
概念证明