簡體   English   中英

如何使用 Selenium 和 Python 單擊元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM