为了账号安全,请及时绑定邮箱和手机立即绑定

在 python 中的 Selenium 中使用显式等待时总是出现 TimeoutException

在 python 中的 Selenium 中使用显式等待时总是出现 TimeoutException

慕后森 2022-10-11 21:22:48
我有下面的代码。from selenium import  webdriverimport timefrom selenium.webdriver.support.ui import Selectfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Bydriver = webdriver.Chrome() #driver.implicitly_wait(10) #https://blog.csdn.net/u010895119/article/details/77005886driver.get('http://www.aim.env.uea.ac.uk/aim/model4/model4d.php') #button = driver.find_element_by_id('add_organic')#button.click()#input = driver.find_element_by_id("selection_box_id")#input.click()driver.find_element_by_xpath('//*[@id="selection_box_id"]/option[3]').click() #driver.find_element_by_xpath('//*[@id="selection_box_div"]/p/input').click()#input = driver.find_element_by_id("selection_box_id")#input.click()driver.find_element_by_xpath('//*[@id="selection_box_id"]/option[7]').click()#driver.find_element_by_xpath('//*[@id="selection_box_div"]/p/input').click()# driver.find_element_by_xpath('//*[@id="BacktoCalculation_id"]').click() ##driver.execute_script("window.history.go(-1)") #https://stackoverflow.com/questions/27626783/python-selenium-browser-driver-backwait = WebDriverWait(driver, 10) # element = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="mainForm"]/div[2]/table/tbody/|tr/td[3]/input')))# element.click()我总是遇到超时错误:raise TimeoutException(message, screen, stacktrace)selenium.common.exceptions.TimeoutException: Message:但是当我尝试直接找到元素时,它确实有效。但我需要在这里明确等待以确保安全。任何人都可以帮助找出上面代码中的问题吗?非常感谢!element = driver.find_element_by_xpath('//*[@id="mainForm"]/div[2]/table/tbody/tr/td[3]/input')
查看完整描述

1 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

这是因为您的 xpath 中有错字


'//*[@id="mainForm"]/div[2]/table/tbody/|tr/td[3]/input' # error

'//*[@id="mainForm"]/div[2]/table/tbody/tr/td[3]/input'  # ok

这工作正常


wait = WebDriverWait(driver, 10) #

element = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="mainForm"]/div[2]/table/tbody/tr/td[3]/input')))#

element.click()


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信