RPA怎么學(xué)(4)——選擇器3
這一篇是選擇器的完結(jié)篇了。只要掌握這些選擇器,那么你編寫AdsPower的RPA流程就沒啥大問題了,剩下的就是多練習(xí)啦~
關(guān)系選擇器

元素[屬性=“屬性值”]——div[data-asin="B0BQ72RJ48"]
該選擇器表達(dá)的意思就是:選擇序號1的div元素,它的屬性為data-asin,屬性值為B0BQ72RJ48。語法:元素[屬性=“屬性值”],如果想要用多個屬性去定位元素,語法就是:元素[屬性=“屬性值”][屬性=“屬性值”]
元素.類值——div.sg-clo-inner
選擇一個div元素,它的類的值是sg-col-inner。所以,通過該選擇器,我們可以定位到序號為2的div元素。
元素>元素——div>div
子代關(guān)系選擇器是個大于號?“?>?”。選擇一個div元素,它的父級元素是div,從圖中我們可以看到,滿足這種關(guān)系的元素,有序號2,序號3,序號4的div元素。它們的父級元素都是div。
當(dāng)然,還可以用這個選擇器:div>div.sg-col-inner
選擇一個類值為sg-col-inner的div元素,且該元素的父元素是div元素。結(jié)合圖看,發(fā)現(xiàn)只有序號2的元素滿足該條件,于是就可以用該選擇器定位到。
偽類選擇器
大家也不用知道什么是偽類,只需學(xué)會怎么用它去定位元素就行。

我們先看紅框里面的元素結(jié)構(gòu),1個div元素下,有3個div子元素。如果我們要定位第3個子元素,用之前的選擇器搭配使用也是可以的。但是接下來,我會教大家用偽類選擇器。
在一些網(wǎng)頁里,類的值或者屬性的值往往是一些亂碼,而且這些值不定期地會更改,這是網(wǎng)站的“反爬”技術(shù)之一。一旦這些值更改,我們基于這些值使用的選擇器可能會失效,導(dǎo)致RPA機(jī)器人在運(yùn)行的時候,沒辦法正常操作網(wǎng)頁。
網(wǎng)站更改網(wǎng)頁結(jié)構(gòu)的情況相對少一些,即使改,也不會很頻繁。所以,我們可以利用元素彼此之間位置的關(guān)系去定位元素,而偽類選擇器正是利用這種關(guān)系去定位元素。
如上圖藍(lán)框處,我輸入了一個選擇器:.a-section.a-spacing-base>div:nth-child(3)
我們一步步來拆解該選擇器的用法:
首先,我們得選擇這3個子元素的父級元素,所以先用類選擇器定位父級元素:.a-section.a-spacing-base
其次,用“>”連接下一個選擇器,說明要定位父級元素的子元素
最后,用選擇器:div:nth-child(3)選擇第3個子元素。該選擇器的意思是:選擇每個div元素,且該div元素是起父級的第3個子元素。
語法就是?:nth-child(n),n表示第幾個。":"前面填寫子元素的選擇器,如元素選擇器、屬性選擇器等其他選擇器。
當(dāng)你剛開始用偽類選擇器的時候,可能會定位不到元素。但是,多實踐,多去試試。有時候是n填寫不正確,或者冒號前面的選擇器沒填對導(dǎo)致的。
其他選擇器
想要RPA機(jī)器人定位的元素不變,那就需要靈活地使用各種不同的選擇器。我在之前的學(xué)習(xí)路線里給出過一份資料:https://www.runoob.com/cssref/css-selectors.html??這里列出了幾乎所有的選擇器語法。
別看長長的一列選擇器,你頭皮發(fā)麻。其實,Tool哥我常用的選擇器也就12個,如下列表所示。大家可以有目的地去訓(xùn)練并掌握這12個選擇器。只要掌握了這12個選擇器,你幾乎可以定位95%以上的網(wǎng)頁元素了。

總結(jié)
關(guān)于用選擇器定位元素的知識,我已經(jīng)總結(jié)完了??赡苓€有些比較難以理解的地方。后面Tool哥會抽時間錄個視頻,教大家怎么用選擇器定位網(wǎng)頁元素,從而讓大家更有效率地使用AdsPower?RPA去完成自己的業(yè)務(wù)。
大家平時在利用RPA的時候,遇到什么困難點(diǎn),也可以提出來,Tool哥看到會回復(fù)的哈~