設定
我有以下html表,
<table>
<tbody>
<tr class="order-activ_order_delivered">
<tr class="tracking-url tracking-url-activ_order_delivered">
<tr class="order-activ_order_delivered">
<tr class="tracking-url tracking-url-activ_order_delivered">
<tr class="order-activ_order_delivered">
<tr class="tracking-url tracking-url-activ_order_delivered">
<tr class="order-complete">
<tr class="empty-tracking-url order-complete">
<tr class="order-activ_order_delivered">
<tr class="tracking-url tracking-url-activ_order_delivered">
<tr class="order-activ_order_delivered">
<tr class="tracking-url tracking-url-activ_order_delivered">
<tr class="order-complete">
<tr class="empty-tracking-url order-complete">
<tbody>
</table>
我只需要類名"order-activ_order_delivered"和行中的資訊"tracking-url tracking-url-activ_order_delivered"。
而且,任何"order-activ_order_delivered"一行的資訊都與后面的"tracking-url tracking-url-activ_order_delivered"行相關。
到目前為止的代碼
以下回圈獲取每個"order-activ_order_delivered",
order_table = el_css(browser,'#my-orders-table > tbody')
for order in order_table.find_elements(By.CSS_SELECTOR,
"tr[class^='order-activ_order_delivered']"):
#code to get data from row
問題
要獲取"tracking-url tracking-url-activ_order_delivered"我嘗試的后續行的資訊,
for order in order_table.find_elements(By.CSS_SELECTOR,
"tr[class^='order-activ_order_delivered']"):
order_table.find_elements(By.CSS_SELECTOR,
"tr[class^='order-activ_order_delivered']/following-sibling::tr")
但這給出了一個 InvalidSelectorException: invalid selector: An invalid or illegal selector was specified (Session info: chrome=100.0.4896.127)
要么是因為您不能following-sibling在 a 上使用,要么是CSS_SELECTOR因為其他原因。
如何從后續"tracking-url tracking-url-activ_order_delivered"行中獲取?
uj5u.com熱心網友回復:
following-sibling不是CSS_Selector語法它是xpath語法。
您的代碼應該像識別特定元素然后xpath用于檢查following-sibling
for order in order_table.find_elements(By.CSS_SELECTOR,
"tr[class^='order-activ_order_delivered']"):
nextelement=order.find_element(By.XPATH, "./following-sibling::tr[@class='tracking-url tracking-url-activ_order_delivered']")
或者
for order in order_table.find_elements(By.CSS_SELECTOR,
"tr[class^='order-activ_order_delivered']"):
nextelement=order.find_element(By.XPATH, "./following-sibling::tr[1]")
如果想css selector使用可以使用它,它將回傳所有跟蹤 URL。
tr[class^='order-activ_order_delivered'] tr.tracking-url.tracking-url-activ_order_delivered
代碼:
for order in order_table.find_elements(By.CSS_SELECTOR,
"tr[class^='order-activ_order_delivered'] tr.tracking-url.tracking-url-activ_order_delivered"):
nextelement=order
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/466293.html
