当我的代码不在无头模式下时,我的代码可以正确运行,但是我需要在服务器上运行它。因此,当我启用无头模式并尝试转到特定的帧(由于JavaScript)时,出现错误。是否可以在无头模式下在框架之间切换,还是有另一种方法来查找元素并在嵌套框架中单击该元素?
用于Ubuntu 18,Python 3.6,硒3.141.0,chromedriver70。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
chrome_dir = os.path.realpath('chromedriver')
opts = Options()
opts.add_argument('--headless')
opts.add_argument("--start-maximized")
opts.add_argument("--ignore-certificate-errors")
driver = webdriver.Chrome(chrome_dir, options=opts)
driver.get(url)
driver.switch_to_default_content
driver.switch_to.frame('faci1')
NoSuchFrameException: Message: no such frame
它需要先转到框架,然后我才能找到该元素并单击它:
driver.find_element_by_xpath('//*[@id="F80351"]')