我需要導航到具有特殊類的物件,這會改變每次頁面重繪
所以我決定使用 bs 來查找元素類,它有效,但是 selenium 引發了關于無效選擇器的例外。類是存在的,我可以在頁面源代碼中找到它。類名的開頭和結尾有一些空格,由于某種原因,bs 沒有顯示,但即??使我手動將它們添加到類名中,問題仍然存在。`
#opening vehicle menu
vehicle_menu_parent = soup.find('div', string='ЛЕГКОВЫЕ АВТОМОБИЛИ').parent
vehicle_menu_class = '" ' str(vehicle_menu_parent)[11:50] ' "'
print(vehicle_menu_class) # " x-grid-cell x-grid-cell-gridcolumn-1331 "
with open('test.html', 'w', encoding='utf8') as file:
file.write(driver.page_source)
vehicle_menu = driver.find_element(By.CLASS_NAME, vehicle_menu_class)
action.move_to_element(vehicle_menu).double_click().perform()
time.sleep(10)
`

uj5u.com熱心網友回復:
driver.find_element需要兩個引數:By一個string包含一個類名。
vehicle_menu_class變數是使用這一行構建的:vehicle_menu_class = '" ' str(vehicle_menu_parent)[11:50] ' "'. 所以,在這種情況下,它是" x-grid-cell x-grid-cell-gridcolumn-1331 "。
類屬性中的空格是類名分隔符。該元素有 2 個類:x-grid-cell和x-grid-cell-gridcolumn-1331. 所以你需要跳過所有的空格。
最后你的定位器應該是這樣構造的:
driver.find_element(By.CLASS_NAME, "x-grid-cell-gridcolumn-1331")
但現在似乎正在構建的是:
driver.find_element(By.CLASS_NAME, "" x-grid-cell x-grid-cell-gridcolumn-1331 "")
python 和 selenium 很難理解這些引號和空格。
我認為建立這樣的類名應該可行:
vehicle_menu_class = str(vehicle_menu_parent)[24:50]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529703.html
標籤:Python硒美丽的汤
上一篇:硒錯誤
下一篇:使用Xpath獲取文本
