我想知道如何用selenium(或其他框架)在新页面上弹出一个弹出窗口。下面的python代码单击一个按钮,然后打开一个新页面,但我不知道如何复制/粘贴促销代码。你能帮忙吗?
from selenium import webdriver
from time import sleep
from selenium.webdriver import ChromeOptions, Chrome
class Coupons_offers:
def stayOpen(self):
opts = ChromeOptions()
opts.add_experimental_option("detach", True)
driver = Chrome(chrome_options=opts)
def __init__(self):
self.driver = webdriver.Chrome()
self.driver.get("https://www.offers.com/scotch-porter/")
sleep(2)
self.driver.find_element_by_xpath('//button[@id="_evidon-banner-acceptbutton"]').click()
sleep(2)
self.driver.find_element_by_xpath('//body/div[@id="main"]/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/div[3]/div[1]/div[1]/a[1]').click()
sleep(4)
self.driver.get("https://www.offers.com/scotch-porter/#offer_id=4467763")
3条答案
按热度按时间aor9mmx11#
模式窗口是从外部url加载的。您可以使用以下代码来解析优惠券代码(只需将offerid替换为您想要的id):
印刷品:
dxpyg8gm2#
通过单击
self.driver.find_element_by_xpath('//body/div[@id="main"]/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/div[3]/div[1]/div[1]/a[1]').click()
将打开一个新选项卡。现在,您必须用
driver.switch_to.window(driver.window_handles[-1])
在“新建”选项卡上,可以从位于的元素中获取文本//div[@class='coupon-code']
xpath
现在您可以关闭新打开的选项卡driver.close
然后切换回上一个选项卡driver.switch_to.window(driver.window_handles[0])
请在此处查看更多详细信息camsedfj3#
听起来您可能需要获取新窗口的窗口句柄并转到它。要调试,请尝试
应该很清楚新窗口的窗口句柄是什么。那你就可以了
在继续使用新窗口的代码之前。