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

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

在這種情況下(輸入框)捕獲元素(Xpath 或 CSS 選擇器)的最佳方式?

在這種情況下(輸入框)捕獲元素(Xpath 或 CSS 選擇器)的最佳方式?

蝴蝶刀刀 2023-03-30 10:35:41
我正在嘗試用 selenium 抓取一個(gè)網(wǎng)站,我主要使用 xpath 或 CSS 選擇器來抓取元素。但是我注意到這些是動(dòng)態(tài)的(即使我在網(wǎng)上讀到 CSS 選擇器不應(yīng)該是動(dòng)態(tài)的)而且我不得不經(jīng)常重新編寫代碼。我對(duì)此很陌生,想幫助找出最好的方法。下面是一個(gè)元素的示例,它是我試圖獲取的輸入框,我知道像 ID 這樣的更明確的選擇器使用起來更可靠,但在這種情況下我似乎找不到任何標(biāo)識(shí)符。下面的元素 -<dpm-input-number-bare><input size="1" type="text" placeholder="" class="ng-pristine ng-valid ng-touched"></dpm-input-number-bare>這不起作用 -driver.find_element_by_css_selector("ng-valid.ng-dirty.ng-touched")這是更高級(jí)別 - 它基本上是一個(gè)輸入固定利率的輸入框(框旁邊的標(biāo)簽)<div class="dpm-form-row"><dpm-input-number class="flex-6"><dpm-input-label><label>Fixed Rate</label></dpm-input-label><dpm-input-number-bare><input size="1" type="text" placeholder="" class="ng-pristine ng-valid ng-touched"></dpm-input-number-bare></dpm-input-number><div class="flex-6"></div></div>
查看完整描述

4 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用以下 XPath 定位元素:


driver.find_element_by_xpath('//input[@class="ng-pristine ng-valid ng-touched"][../preceding-sibling::dpm-input-label[1]/label[.="Fixed Rate"]]')

我們使用label元素作為錨點(diǎn)。獲取input滿足以下條件的元素:preceding-sibling它的第一個(gè)元素parent有一個(gè)label包含術(shù)語“固定利率”的子元素。


如果需要,添加預(yù)期條件(元素可以接收點(diǎn)擊)。假設(shè)你想在輸入框中發(fā)送“12”:


WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, '//input[@class="ng-pristine ng-valid ng-touched"][../preceding-sibling::dpm-input-label[1]/label[.="Fixed Rate"]]'))).send_keys("12")

進(jìn)口:


from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

編輯:其他 XPath 替代品:


3 XPath 使用following-sibling軸:


//dpm-input-label[label[.="Fixed Rate"]]/following-sibling::dpm-input-number-bare[1]/input

//dpm-input-label[label[contains(.,"Fixed Rate")]]/following-sibling::dpm-input-number-bare[1]/input

//dpm-input-label[contains(.,"Fixed Rate")]/following-sibling::dpm-input-number-bare[1]/input

3 XPath 使用preceding-sibling軸和多個(gè)contains元素input:


//input[contains(@class,"ng-pristine") and contains(@class,"ng-valid") and contains(@class,"ng-touched")][../preceding-sibling::dpm-input-label[1]/label[.="Fixed Rate"]]

//input[contains(@class,"ng-pristine") and contains(@class,"ng-valid") and contains(@class,"ng-touched")][../preceding-sibling::dpm-input-label[1]/label[contains(.,"Fixed Rate")]]

//input[contains(@class,"ng-pristine") and contains(@class,"ng-valid") and contains(@class,"ng-touched")][../preceding-sibling::dpm-input-label[1][contains(.,"Fixed Rate")]]

4 XPath 使用preceding軸:


//input[@class="ng-pristine ng-valid ng-touched"][preceding::label[1][.="Fixed Rate"]]

//input[@class="ng-pristine ng-valid ng-touched"][preceding::label[1][contains(.,"Fixed Rate")]]

//input[contains(@class,"ng-pristine") and contains(@class,"ng-valid") and contains(@class,"ng-touched")][preceding::label[1][.="Fixed Rate"]]

//input[contains(@class,"ng-pristine") and contains(@class,"ng-valid") and contains(@class,"ng-touched")][preceding::label[1][contains(.,"Fixed Rate")]]



查看完整回答
反對(duì) 回復(fù) 2023-03-30
?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

你試過這個(gè)嗎?

driver.find_element_by_xpath('//input[@type="text"]')

但是,如果同一個(gè) XPath 有多個(gè)元素,則可能會(huì)引發(fā)錯(cuò)誤。


查看完整回答
反對(duì) 回復(fù) 2023-03-30
?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

使用 xpath 嘗試以下方法:

driver.find_element_by_xpath("//div[@class='dpm-form-row' and contains(., 'Fixed Rate')]//input[@class='ng-pristine ng-valid ng-touched']")



查看完整回答
反對(duì) 回復(fù) 2023-03-30
?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

如何使用其類查找元素

driver.find_element_by_class_name('ng-pristine ng-valid ng-touched')


查看完整回答
反對(duì) 回復(fù) 2023-03-30
  • 4 回答
  • 0 關(guān)注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報(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)