我到处都找遍了,什么都试过了,就是想不通,有没有人能帮帮忙?
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
我已经找遍了所有地方,一开始我甚至没有尝试定位框架,但我发现我需要首先定位正确的框架,然后再定位按钮,才能接受它。如果有人能告诉我我错过了什么,那就太好了。提前感谢!
发布于 2020-11-12 02:53:49
是的,我把它修好了,我去掉了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
https://stackoverflow.com/questions/64728329
复制相似问题