【问题标题】:Python selenium : TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message:Python selenium:TimeoutException(消息,屏幕,堆栈跟踪) selenium.common.exceptions.TimeoutException:消息:
【发布时间】:2021-06-02 05:03:19
【问题描述】:

我在 Python 中使用 selenium 时遇到此错误,不知道如何解决,我尝试使用 Chromeenter image description here 和 Firefox,同样的事情: 回溯(最近一次通话最后): 文件“C:/python/bot_test/fast_buy_FF.py”,第 56 行,在 checkout = 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()

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    这是因为打开了一个新框架 我需要切换到新框架。

    所以我添加了以下代码来切换到新框架。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 2015-04-09
      相关资源
      最近更新 更多