3 回答

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
.texarea不會(huì)找到任何元素:
.指示選擇器應(yīng)在className元素的 中查找前值。
因此,您是在告訴選擇器查找?guī)в衏lassName文本區(qū)域的元素。
您將className選擇器與tagname選擇器混淆了。如果您想通過標(biāo)記名獲取它,您只需使用不帶任何點(diǎn) (.) 的標(biāo)記名,因此:
find_element_by_css_selector("textarea")
這將返回它找到的第一個(gè) textarea 元素,這可能是也可能不是您想要的。為了使其更精確,您可以執(zhí)行以下操作:
find_element_by_css_selector("textarea.tw-block.tw-
border-radius-medium.tw-font-size-6.tw-full-width.tw-textarea.tw-textarea--no-resize")
請(qǐng)注意,在第二個(gè)版本中,選擇器中有多個(gè)點(diǎn) (.),告訴引擎使用:搜索tagnametextarea的元素。每個(gè)單獨(dú)的類名在標(biāo)記中由空格分隔,因此您使用點(diǎn) (.) 告訴選擇器將這些類名鏈接在一起。classNamestw-block tw-
border-radius-medium tw-font-size-6 tw-full-width tw-textarea tw-textarea--no-resizeHtml
如果碰巧你有多個(gè)與classNames上面相同的文本區(qū)域,你需要為你想要的文本區(qū)域找到某種唯一標(biāo)識(shí)符。所以由提供的選擇器KunduK就是一個(gè)很好的例子。
也許此鏈接將幫助您了解有關(guān) css 選擇器的更多信息:( https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors )

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
根據(jù) HTML,元素是一個(gè)<textarea>元素。因此,要識(shí)別元素,相關(guān)代碼應(yīng)該是以下之一:
browser.find_element_by_tag_name("textarea")
browser.find_element_by_css_selector("textarea[attribute_name='attribute_value']")
解決方案
理想情況下,要識(shí)別并單擊所需的元素,您必須為 引入WebDriverWait并且element_to_be_clickable()您可以使用以下任一 定位器策略:
使用CSS_SELECTOR:
input_box = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "textarea[data-a-target='chat-input'][data-test-selector='chat-input'][placeholder='Send a message']")))
input_box.click()
使用XPATH:
input_box = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//textarea[@data-a-target='chat-input' and @data-test-selector='chat-input'][@placeholder='Send a message']")))
input_box.click()
注意:您必須添加以下導(dǎo)入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
你的 css 選擇器是錯(cuò)誤.textarea
的,在 css 選擇器中識(shí)別class name
.
試試下面的css選擇器。
input_box = browser.find_element_by_css_selector("textarea[data-a-target='chat-input']")
添加回答
舉報(bào)