我看过到处都尝试了一切,只是想不通,有人可以帮忙吗?
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
我到处都看过,起初我什至没有尝试找到框架,但我看到我需要首先找到正确的框架,然后是按钮,然后才能接受它。如果有人可以告诉我我想念什么,那太好了。 预先感谢!
答案 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