第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 Selenium 和 Python 定位并單擊文本區(qū)域元素

如何使用 Selenium 和 Python 定位并單擊文本區(qū)域元素

慕哥6287543 2022-11-29 15:56:43
我將 Selenium 與 python 一起使用,并一直試圖單擊一個(gè)文本框,然后輸入一條消息。文本框的 HTML 如下所示:<div class="tw-block tw-border-radius-large tw-pd-0">    <div class="tw-relative">        <div class="chat-input__textarea">            <textarea data-a-target="chat-input" data-test-selector="chat-input" class="tw-block tw-             border-radius-medium tw-font-size-6 tw-full-width tw-textarea tw-textarea--no-resize"             autocomplete="Messenger-chat" maxlength="500" placeholder="Send a message" rows="1"             style="padding-right: 3.5rem;"></textarea>        </div>     </div></div>我一直在嘗試使用以下代碼通過 css 選擇器選擇它:time.sleep(3)input_box = browser.find_element_by_css_selector(".textarea")input_box.click()for ch in message:    input_box.send_keys(ch)input_box.send_keys(Keys.ENTER)它一直給我一個(gè) NoSuchElement。如您所見,我真的不知道自己在做什么-請(qǐng)幫忙謝謝:)
查看完整描述

3 回答

?
慕娘9325324

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 )


查看完整回答
反對(duì) 回復(fù) 2022-11-29
?
SMILET

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


查看完整回答
反對(duì) 回復(fù) 2022-11-29
?
慕虎7371278

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']")


查看完整回答
反對(duì) 回復(fù) 2022-11-29
  • 3 回答
  • 0 關(guān)注
  • 236 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)