[英]Selenium find_element CSS, how to?
我正在嘗試測試登錄到 twitter,這是登錄框的一個元素部分,但是我嘗試使用 xpath,但它不起作用。
CSS 元素
<input autocapitalize="sentences" autocomplete="username" autocorrect="on" name="text" spellcheck="true" type="text" dir="auto" class="r-30o5oe r-1niwhzg r-17gur6a r-1yadl64 r-deolkf r-homxoj r-poiln3 r-7cikom r-1ny4l3l r-t60dpp r-1dz5y72 r-fdjqy7 r-13qz1uu" value="">
t = driver.find_element(By.XPATH, '//*[@id="react-root"]/div/div/div/main/div/div/div/div[2]/div[2]/div/div[5]/label/div/div[2]/div/input')
錯誤 selenium.common.exceptions.NoSuchElementException:消息:沒有這樣的元素:無法找到元素:
如何使用 CSS_SELECTOR 來做到這一點?
根據提供的HTML
,您可以使用以下方式
username_input = self.browser.find_element(By.NAME, "text")
username_input.send_keys('send username here')
一種更好的方法是誘導ExplicitWait
。
代碼
wait = WebDriverWait(self.browser, 30)
username_input = wait.until(EC.visibility_of_element_located((By.NAME, "text")))
username_input.send_keys('send username here')
進口
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
CSS 選擇器將是:
input[name='text']
XPATH 將是:
//input[@name='text']
希望這能解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.