Xpath Selenium-如何通过子文本定位元素

希望你真的很好并且可以帮助我解决这个简短的问题。我试图找到以下对象id=C39_W133_V136_thtmlb_button_27,但使用位于跨度之后的文本(文本=“编辑”)。请问我尝试了不同的方法,但到目前为止还没有成功,有什么想法吗?


<a href="javascript:void(0)" class="th-bt th-bt-icontext-dis icon-font" tabindex="-1" oncontextmenu="return false;" ondragstart="return false;" id="C39_W133_V136_thtmlb_button_27">

  ::before  

  <img class="th-bt-img" src="/SAP/BC/BSP/SAP/thtmlb_styles/sap_skins/belize/images/1x1.png">  

  <span class="th-bt-span"><b class="th-bt-b">Edit</b></span>  

  <b class="th-bt-b">Edit</b>

</a>


白衣非少年
浏览 152回答 2
2回答

阿波罗的战车

为了使用元素中包含的文本来定位元素,唯一的选择是使用 XPath。//a[./b[.='Edit']]^ Start at the top of the document and find an A tag&nbsp; &nbsp;^ ...that has a descendant B tag&nbsp; &nbsp; &nbsp; &nbsp; ^ ...that contains the text 'Edit'

ITMISS

要定位<a>具有降序<span>文本作为编辑的元素,您需要引发WebDriverWait,并且visibility_of_element_located()可以使用以下定位器策略之一:使用XPATH:element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[contains(@id, 'thtmlb_button')][.//b[text()='Edit']]")))注意:您必须添加以下导入:from selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as EC
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python