[英]How to click on the element using Selenium and Python
我想點擊這個元素的“創建帖子”按鈕:
<div class="l61y9joe j8otv06s a1itoznt qwtvmjv2 kiex77na lgsfgr3h mcogi7i5 ih1xi9zn ippphs35 a53abz89" data-hover="tooltip" data-tooltip-display="overflow" id="js_2f">Create Post</div>
但是這個 id ( id="js_2f" ) 有一個隨機值:
我是這樣做的,但是沒有用!
wait = WebDriverWait(self.browser, 20)
wait.until(EC.element_to_be_clickable((By.XPATH, "//*[text()='Create Post' and contains(@id, 'js_')]"))).click()
如何使用 Xpath 方法單擊它?
以下應該有幫助:
driver.find_element_by_xpath('//div[contains(text(),"Create Post")]').click()
你可以試試下面的 xpath contains
//div[contains(text(),'Create Post')]
您可以嘗試使用鏈接文本單擊此元素
driver.find_element_by_link_text("Create Post")
或者
driver.find_element_by_xpath("//div[text() = 'Create Post']")
Create Post按鈕是啟用了JavaScript的元素,因此要單擊該元素,您必須為element_to_be_clickable()
誘導WebDriverWait並且您可以使用以下任一定位器策略:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[data-hover='tooltip'][data-tooltip-display]"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@data-hover='tooltip' and text()='Create Post'][@data-tooltip-display]"))).click()
注意:您必須添加以下導入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.