請問使用Selenium應用於蝦皮找尋商品選項時,該如何持續偵測,未上架 (如圖反白,不能點選)的商品。
若發現未開賣的商品未上架時,就刷新頁面,再重新偵測,直到商品上架了,就自動點選該商品,然後再點擊購買。
我透過Selenium 八種定位方式,仍無法順利偵測,蝦皮的商品選項,都是用class命名,且命名方式相似,點選的商品選項又會不同。
目前測試結果都是,刷新介面後,就直接點選購買了,並沒有點選到我想要的商品選項,目標是想不停刷新介面,直到商品上架,就點選該商品選項,然後再點擊購買。
請各位大大幫幫解惑,自學Python所以不是很懂
以下部份Code
B = '//*[@id="main"]/div/div[2]/div[1]/div/div[2]/div/div[2]/div[3]/div/div[4]/div/div[3]/div/div[1]/div/button[1]'
while 1:
try:
buy1 = WebDriverWait(driver,1,0.4).until(EC.presence_of_all_elements_located((By.XPATH, B)))
print('成功進入商品頁面')
driver.find_element_by_xpath(B).click()
print('點擊商品選項-完成')
driver.find_element_by_xpath('//*[@id="main"]/div/div[2]/div[1]/div/div[2]/div/div[2]/div[3]/div/div[5]/div/div/button[2]').click()
print('點擊直接購買-完成')
break
except:
print("還不能購買!刷新頁面")
driver.refresh()
Selenium API
看一下API文件吧
is_enabled() 回傳true再做下面點選然後送出的步驟
給兩個方向參考參考
buy1 = WebDriverWait(driver,1,0.4).until(EC.presence_of_all_elements_located((By.XPATH, B)))
這行 1 秒的等待時間可能有點太少了,網頁載入需要比較多一點時間以上前提是你的定位方式沒有錯