超时异常:消息:Selenium Python

时间:2021-03-09 15:46:35

标签: python selenium selenium-webdriver

我一直试图点击一个显然找不到的按钮。

from selenium import webdriver
from selenium.webdriver.common import by
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support import expected_conditions as EC, wait
import time
import base

def click(driver, locator):
    WebDriverWait(driver, 10).until(EC.presence_of_element_located(locator)).click()
def sendKeys(driver, locator, value):
    WebDriverWait(driver, 10).until(EC.presence_of_element_located(locator)).clear()
    WebDriverWait(driver, 10).until(EC.presence_of_element_located(locator)).send_keys(value)

# entrar no site
driver = webdriver.Chrome()
driver.get("site")
assert "site" in driver.title

# username
click(driver, (By.NAME, 'j_username'))
time.sleep(2)
sendKeys(driver, (By.NAME, 'j_username'), 'user')

# password
click(driver, (By.NAME, 'j_password'))
#time.sleep(2)
sendKeys(driver, (By.NAME, 'j_password'), 'pass')
#time.sleep(2)
click(driver, (By.NAME, 'submit'))

# simular
time.sleep(2)
click(driver, (By.CLASS_NAME, 'textodestaqueshome'))
print('Passou 1')


# procurar Iframe
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"dados"))) 

click(driver, (By.ID, 'listaProdutosProp:form1:objProdutos:11:cmdLnkProd2')) # <--------- 

print('Passou 2')


呈现的回溯如下:

  File "C:\Users\Op. Crédito 73\PycharmProjects\RobotSegurosAuto\Caravela.py", line 45, in <module>
    click(driver, (By.ID, 'listaProdutosProp:form1:objProdutos:11:cmdLnkProd2'))
  File "C:\Users\Op. Crédito 73\PycharmProjects\RobotSegurosAuto\Caravela.py", line 12, in click
    WebDriverWait(driver, 10).until(EC.presence_of_element_located(locator)).click()
  File "C:\Users\Op. Crédito 73\PycharmProjects\RobotSegurosAuto\venv\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

一开始我试着简单地点击(),但之后我认为它在不同的 Iframe 中,所以我试图改变框架,但即使这样它也不起作用。 还有其他解决办法吗?

感谢您的帮助

0 个答案:

没有答案
相关问题