简体   繁体   English

Selenium find_element CSS,如何?

[英]Selenium find_element CSS, how to?

I am trying to test logging in to twitter and this is a element section of the login box however I tried xpath with but it doesn't work.我正在尝试测试登录到 twitter,这是登录框的一个元素部分,但是我尝试使用 xpath,但它不起作用。

CSS element 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')

error selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:错误 selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:

How can this be done using CSS_SELECTOR?如何使用 CSS_SELECTOR 来做到这一点?

According to provided HTML you can use below ways根据提供的HTML ,您可以使用以下方式

username_input = self.browser.find_element(By.NAME, "text")
username_input.send_keys('send username here')

A way better approach will be to induce ExplicitWait .一种更好的方法是诱导ExplicitWait

Code代码

wait = WebDriverWait(self.browser, 30)

username_input = wait.until(EC.visibility_of_element_located((By.NAME, "text")))
username_input.send_keys('send username here')

Imports进口

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

CSS selector will be: CSS 选择器将是:

input[name='text']

XPATH will be: XPATH 将是:

//input[@name='text']

Hope this solve your issue.希望这能解决您的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM