我试图在selenium上使用,并尝试执行特定的操作,如果存在特定的文本,然后单击它。
如何在driver.find.element()中使用contains函数。到目前为止我试过:
if driver.find_element(By.LINK_TEXT, contains("Hello World")) == True:
driver.find_element(By.LINK_TEXT, "Hello World").click() 以及其中的一些变化。
要素:
<a href="/xyz" target="_blank" class="btn btn-primary inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md shadow-sm text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500">"Hello World"</a>发布于 2022-10-07 16:44:05
您可以使用can ():
driver.find_element(By.XPATH,".//*[contains(.,'Hello World')]")或
driver.find_element(By.XPATH,".//*[contains(text(),'Hello World')]")或
driver.find_element(By.XPATH,".//*[contains(@id,'Hello World')]")语法:
//tagName[contains(@attribute_name,'attribute_value')] 或
//*[contains(@attribute_name,'attribute_value')]或
//*[contains(text(),'value')]发布于 2022-10-07 16:54:26
有一个By.PARTIAL_LINK_TEXT选择器选项,它可以做链接文本的子字符串。
发布于 2022-10-08 22:33:17
首先,您应该使用driver.find_elements方法,而不是driver.find_element方法,因为如果没有找到这样的元素,driver.find_element将抛出异常,它将不会返回布尔值False。
而driver.find_elements将返回匹配web元素的列表。如果找到匹配,它将返回一个非空列表,Python将将其解释为布尔True。否则,如果没有找到匹配项,它将返回一个空字符串,Python将将其解释为布尔False。
正如AbiSaran所提到的,您可以使用driver.find_element(By.XPATH,,如果字符串包含',您可以使用斜杠,如下所示“
if driver.find_elements(By.XPATH, "//a[contains(.,'fellow\'s world')]"):
driver.find_element(By.XPATH, "//a[contains(.,'fellow\'s world')]").click()或
elements = driver.find_elements(By.XPATH, "//a[contains(.,'fellow\'s world')]")
if elements:
elements[0].click()https://stackoverflow.com/questions/73990180
复制相似问题