簡體   English   中英

Python selenium:超時異常(消息,屏幕,堆棧跟蹤)selenium.common.exceptions.TimeoutException:消息:

[英]Python selenium : TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:

我在使用 selenium 和 Python 時遇到此錯誤,不知道如何修復它,我嘗試使用 Chrome在此處輸入圖像描述和 Firefox,以及同樣的事情: 在此處輸入圖像描述 回溯(最后一次調用):文件“C:/python/bot_test/fast_buy_FF.py”,第 56 行,在結帳 = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "turbo-checkout -pyo-button"))) 文件“C:\Users\basheer.kafaf\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\support\wait.py”,第 80 行,在直到引發 TimeoutException(消息,屏幕,堆棧跟蹤)selenium.common.exceptions.TimeoutException:消息:

代碼:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from playsound import playsound

# PATH = 'chromedriver.exe'
driver = webdriver.Firefox()



Max_price = 800

Item_code = 'B08N5D31XF'
Item_http_offer_page = 'https://www.amazon.com/dp/{}?smid=ATVPDKIKX0DER&tag=data20-20#aod'.format(Item_code)
Item_http_Product_page = 'https://www.amazon.com/gp/product/{}?tag=ns0ec-20'.format(Item_code)

log_in_email = "XXXXXXXXXXX"
passward = "XXXXXXXXXX"
driver.get("https://www.amazon.com/ref=nav_logo")

sgin_in = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "nav-signin-tooltip")))
sgin_in.click()

ap_email = WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.ID, "ap_email")))
ap_email.send_keys(log_in_email)
search1 = driver.find_element_by_id("continue")
search1.click()

ap_password = WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.ID, "ap_password")))
ap_password.send_keys(passward)
search2 = driver.find_element_by_id("signInSubmit")
search2.click()


time.sleep(1)
New_tab = driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.get(Item_http_Product_page)


Looper = True

while Looper:
    # try:
        buybox = WebDriverWait(driver, 2).until(EC.presence_of_element_located((By.ID, "price_inside_buybox")))
        print (buybox.text)
        item_price = int(float(buybox.text.replace(',', '').replace('$','')))
        print (item_price)

        if  item_price < Max_price:
            # playsound('bells.mp3')
            buy_now= WebDriverWait(driver, 4).until(EC.presence_of_element_located((By.ID, "buy-now-button")))
            buy_now.click()
            checkout = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "turbo-checkout-pyo-button")))
            checkout.click()
            Looper = False



    # except:
    #     print('No buy now available yet ')
    #     time.sleep(1)
    #     driver.refresh()

發生這種情況是因為打開了一個新框架,我需要切換到新框架。

所以我添加了下面的代碼來切換到新框架。

driver.switch_to.frame(WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "iframe"))))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM