硒接受警报gdpr

2024-06-30 13:41:18 发布

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

我到处都找过了,什么都试过了,我就是想不出来,有人能帮忙吗

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

我到处都找过了,一开始我甚至没有试着定位这个框架,但我发现我需要首先定位正确的框架,然后是按钮,才能接受它。如果有人能告诉我我错过了什么,那就太好了。 提前谢谢


Tags: to定位框架executedriverscriptbuttonopen
1条回答
网友
1楼 · 发布于 2024-06-30 13:41:18

是的,我修复了它,我去掉了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

相关问题 更多 >