Selenium,Python(引发TimeoutException(消息,屏幕,堆栈跟踪)TimeoutException)

时间:2018-10-24 22:54:57

标签: python selenium xpath webdriver timeoutexception

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 

url = "https://www.electionreturns.pa.gov/General/OfficeResults?OfficeID=13&ElectionID=undefined&ElectionType=undefined&IsActive=1" 

options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("--test-type")

driver = webdriver.Chrome(r"...\chromedriver.exe", options = options)
driver.get(url)


try: 
    element = WebDriverWait(driver,20).until(
            EC.visibility_of_element_located((By.XPATH, "/html/body/script[15]"))
            )

finally: 
    driver.quit()

这是很新的东西,但是我似乎无法在Selenium文档和StackO之间弄清楚这一点。

这引发了:

raise TimeoutException(message, screen, stacktrace)

TimeoutException

再次,这是新的。我相当确定我要访问的Java脚本是src="/Scripts/AppScripts/GeneralController.js"?v=1.2)。其中的xpath为/html/body/script[15]。但是,我的访问方法可能是错误本身。

任何见识都值得赞赏。谢谢,C。

1 个答案:

答案 0 :(得分:0)

脚本元素位于DOM中,但没有可见性状态。

您可以使用 EC.presence_of_element_located

检查它们
element = WebDriverWait(driver,20).until(
            EC.presence_of_element_located((By.XPATH, "/html/body/script[15]"))
            )