硒接受警报gdpr

时间:2020-11-07 13:47:53

标签: python selenium web-scraping iframe webdriver

我看过到处都尝试了一切,只是想不通,有人可以帮忙吗?

driver.execute_script('''window.open("https://www.abv.bg/","_blank");''')
driver.implicitly_wait(30)
driver.switch_to.frame("abv-GDPR-frame")
#driver.switch_to.frame("gdpr-consent-notice")
otkazTS = driver.find_element_by_xpath(
    '''.//a[@class="accept-all mat-button mat-button-base mat-raised-button"][@style="color: white
    background-color: rgb(72, 72, 74)"]''').click()

这是给我这个错误的部分: selenium.common.exceptions.NoSuchFrameException: Message: abv-GDPR-frame

我到处都看过,起初我什至没有尝试找到框架,但我看到我需要首先找到正确的框架,然后是按钮,然后才能接受它。如果有人可以告诉我我想念什么,那太好了。 预先感谢!

1 个答案:

答案 0 :(得分:0)

是的,我已修复它,我摆脱了window.open-简单地说,没有打开第二个选项卡。 然后我添加了一些明确的等待,但是程序仍然相同:

driver.get('https://www.abv.bg/')
frame1 = WebDriverWait(driver, 5).until(
    EC.frame_to_be_available_and_switch_to_it("abv-GDPR-frame"))
frame2 = WebDriverWait(driver, 5).until(
    EC.frame_to_be_available_and_switch_to_it("gdpr-consent-notice"))
otkazTS = WebDriverWait(driver, 5).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, "a.accept-all.mat-button.mat-button-base.mat-raised-button"))).send_keys(u'\ue007')

哦,是的,没有点击,这次点击了ENTER。 谢谢@DMart,您让我考虑了window.open