selenium中的NoSuchFrameException(帧_引用)

2024-10-03 15:30:23 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我得到的一个例外:

Traceback (most recent call last):
  File "/home/navendu/lead-generator/python_scripts/tempCodeRunnerFile.py", line 12, in <module>
    driver.switch_to_frame("http://103.251.43.139/~ksebuser/orumabills/upload/billview/")
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 789, in switch_to_frame
    self._switch_to.frame(frame_reference)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/switch_to.py", line 87, in frame
    raise NoSuchFrameException(frame_reference)
selenium.common.exceptions.NoSuchFrameException: Message: http://103.251.43.139/~ksebuser/orumabills/upload/billview/

下面是我正在运行的python代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
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.Chrome()
driver.get("http://www.kseb.in/index.php?option=com_wrapper&view=wrapper&Itemid=813&lang=en")
driver.maximize_window()
driver.implicitly_wait(7)
driver.switch_to_frame("http://103.251.43.139/~ksebuser/orumabills/upload/billview/")

ele = driver.find_element_by_id('t_consumer-no_5')
ele.send_keys("some text")

这是网页的链接。我正试图在那个网站上自动填写表格 http://www.kseb.in/index.php?option=com_wrapper&view=wrapper&Itemid=813&lang=en


Tags: toinfrompyimporthttpdriverselenium
3条回答

您正试图通过src属性进行切换,但是switch_to_frame接收idname属性或WebElement作为参数。您还应该将sleep()替换为WebDriverWait

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

wait = WebDriverWait(driver, 10)
wait.until(ec.frame_to_be_available_and_switch_to_it('blockrandom'))

框架不是URL

您可以右键单击页面以检查是否有框架。 它将显示“图幅源”。 enter image description here

并找到框架的id/名称/索引

enter image description here

driver.switch_to_frame("blockrandom") # frame id

参考:https://www.techbeamers.com/switch-between-iframes-selenium-python/

尝试使用name或id属性进行切换。可以是trydriver.switch_to_frame("iframe")driver.switch_to_frame("blockrandom")

相关问题 更多 >