错误:接受Cookie(引发TimeoutException(消息、屏幕、堆栈跟踪)selenium.common.exceptions.TimeoutException:)

2024-04-29 02:34:45 发布

您现在位置:Python中文网/ 问答频道 /正文

File "C:\Users\Karthick R\Desktop\VS code\python-virtual-environments\env\lib\site-packages\selenium\webdriver\support\wait.py", line 80, 
in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

我尝试了一些相关问题的建议来接受cookies,但这对我没有帮助。起初,它找不到cookies的元素,这就是我添加EC的原因,但现在它引发了一个错误。请帮帮我,我如何处理这个异常。我也用xpath和css选择器尝试过定位器

import xlwt
from selenium import webdriver
import re
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
import time
from datetime import date
from selenium.webdriver.support import expected_conditions as EC
class aquamobiles:
    def __init__(self):
        self.url='https://www.cosmote.gr/eshop/browse/Mobile-phones/All-Smartphones/-/N-x4fndm'
        self.country='HU'
        self.currency='euro'
        self.VAT='Included'
        self.shipping = 'N/A'
        self.Pre_PromotionPrice ='N/A'
        self.color ='N/A'
    def aqua(self):
        driver=webdriver.Chrome()            
        driver.get(self.url)
        today = date.today()
        driver.maximize_window() 
        time.sleep(5)
        '''cookies = driver.find_element_by_xpath("//button[contains(text(),'Acceptance')]")         
        cookies.click()
        print("cookies accepted")'''
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[contains(text(),'Aποδοχή')]")))
        time.sleep(4)
        element12 = driver.find_elements_by_xpath("//button[contains(text(),'Aποδοχή')]")#.click()
        ActionChains(driver).move_to_element(element12).click().perform();
        print("cookies accepted")
aqua_gr=aquamobiles()
aqua_gr.aqua()

Tags: fromimportselfsupportbytimedriverselenium
2条回答

有几个按钮与该页面上的//button[contains(text(),'Aποδοχή')]定位器匹配。但其中只有1个是可见的。要定位并单击它,您可以使用以下命令:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@style,'100')]//button[contains(@class,'acceptAll')]")))

有多个web元素包含您正在使用的文本,甚至为少数元素复制了类

尝试以下xpath

在代码中:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "(//button[contains(@class, 'js-close-modal-cookiePackage')])[2]"))).click()

相关问题 更多 >