На странице присутствует вложенное iframe
. Вам необходимо переключиться на оба iframes
.
Кадр 1 : ID = 'interiorFrame'
Кадр 2 : ID = 'theiframe'
Индуцировать WebDriverWait
и frame_to_be_available_and_switch_to_it()
для двух кадров.
Попробуйте следующий код.
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.1line.williams.com/Transco/index.html")
action = ActionChains(driver)
step1=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//div[4]/ul[1]/li[5]/a[1]")))
action.move_to_element(step1).perform()
step2=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//div[4]/ul[1]/li[5]/ul[1]/li[1]/a[1]")))
action.move_to_element(step2).click(step2).perform()
WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it((By.ID,'interiorFrame')))
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.ID,'theiframe')))
page_source=driver.page_source
print(page_source)