当前,我正尝试在iframe中为此网站单击“条目级”链接:https://a127-jobs.nyc.gov/index_new.html?category=CAS
不幸的是,如果单击条目级别,URL不会更改,因此我被迫自动化。
如果问题是我输入了错误的iframe,我不确定该怎么办?似乎只有一个,但我可能是错的。
from selenium import webdriver
import time
#webdriver
driver = webdriver.Firefox(executable_path="/Users/alexandrubordei/Desktop/geckodriver")
#get the website
driver.get ("https://a127-jobs.nyc.gov/index_new.html?category=CAS")
time.sleep(10)
#switch to iframe
iframes = driver.find_elements_by_tag_name("iframe")
driver.switch_to.frame(iframes[0])
time.sleep(10)
#click element "entry level"
driver.find_element_by_xpath('//*[@id="ti_S13"]').click()
当我运行我的代码时,除未单击链接外,其他所有功能似乎均正常运行。我的搜索结果没有缩小。
但是我没有得到任何错误。我收到错误消息:
Process finished with exit code 0
答案 0 :(得分:0)
您必须单击该ID内的a
元素
driver.find_element_by_xpath('//*[@id="ti_S13"]/a').click()
答案 1 :(得分:0)
要click()
在文本上为入门级的元素上,因为所需元素在<iframe>
中,因此您必须:
您可以使用以下解决方案:
代码块:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("https://a127-jobs.nyc.gov/index_new.html?category=CAS")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='ptifrmtgtframe' and @name='TargetContent']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, "Entry-Level"))).click()
浏览器快照:
在这里您可以找到有关Ways to deal with #document under iframe的相关讨论