所以我正在尝试制作一个在flickr上运行的程序,我已经准备好了所有的东西,直到cookies弹出,它打败了我。
<iframe src="https://consent-pref.trustarc.com/?type=flickr_iab&layout=iab&site=flickr.com&action=notice&country=gb&locale=en&behavior=expressed&gtm=1&iab=true&irm=undefined&from=https://consent.trustarc.com/" id="pop-frame016812901338164787" title="TrustArc Cookie Consent Manager" tabindex="1" scrolling="no" style="border: 0px none; border-radius: 2px; overflow: hidden; background: rgb(255, 255, 255) none repeat scroll 0% 0%; display: block; position: absolute; top: 0px; left: 0px; width: 100%; height: 834px;"></iframe>
我正在尝试切换到这个iframe,这样我就可以使用“全部接受”按钮。然而,iframe的ID是动态的,所以为了避免这个问题,我尝试以标题为目标。
xpath = """//iframe[contains(@title, 'TrustArc Cookie Consent Manager')]"""
iframe = browser.find_element_by_xpath(xpath);
driver.switch_to.frame(iframe);
但是我现在收到了这个错误消息。
File "flickrbot.py", line 28, in <module>
driver.switch_to.frame(iframe);
File "C:\Users\IMFro\.virtualenvs\Desktop-LBlgM1Hj\lib\site-packages\selenium\webdriver\remote\switch_to.py", line 89, in frame
self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})
File "C:\Users\IMFro\.virtualenvs\Desktop-LBlgM1Hj\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\IMFro\.virtualenvs\Desktop-LBlgM1Hj\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=91.0.4472.124)
我已经尝试添加了10秒的等待时间来给它加载时间,我知道错误的原因是元素不再连接到DOM,但我不知道要使用什么其他引用。
任何建议都会有很大帮助!另外,我对python非常陌生,所以如果你能告诉我你正在向一个5岁的孩子解释的话,我将不胜感激
您可以尝试使用显式等待
:
wait = WebDriverWait(driver, 10)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//iframe[contains(@title, 'TrustArc Cookie Consent Manager')]")))
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我正在使用C#和Selenium Chromedriver来做一个测试项目,以抓取谷歌地图。 在到达第二个循环之前,它运行良好: 返回: OpenQA. Selenium.过时元素引用:元素未附加到页面文档 这是我所有的代码: 任何帮助将不胜感激!
我得到了这个错误,当我试图点击一个下拉ID: 我想用这个代码: 有没有什么方法可以防止无限循环,或者更好的方法在我得到这个异常后点击id?
我正在构建一个刮网站的c#应用程序。我认为这个问题是因为页面在一次又一次提交表单后被重新加载而导致的。我必须从选择列表中选择一个选项,然后按回车键,等待页面重新加载新结果。但是重新加载后会导致此错误; 我的代码是这样的; 我也尝试过类似的东西; 时间不多了,我有个例外,时间不多了。
这是HTML结构如下所示 错误跟踪为:
我在我的selenium java项目中不断收到一条错误消息。
我正在尝试读取联系人页面中的数据,但遇到此异常。