如何使用 python selenium 关闭另一个 chrome 弹出窗口

Posted

技术标签:

【中文标题】如何使用 python selenium 关闭另一个 chrome 弹出窗口【英文标题】:How to close yet another chrome popup using python selenium 【发布时间】:2018-08-21 18:48:36 【问题描述】:

Link to "chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension.crx')"

这是我的代码:

import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import gmtime, strftime
from os import system
import pyperclip
import datetime
import time
import os
import sys



executable_path = r"C:\Users\Administrator\Desktop\chromedriver_win32\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = executable_path
chrome_options = Options()
chrome_options.add_extension(r'C:\Users\Administrator\Desktop\chromedriver_win32\extension.crx')
driver = webdriver.Chrome(executable_path=executable_path, chrome_options=chrome_options)
time.sleep(4)
driver.get("https://www.tradingview.com/chart/gK6Rq0UH/")
time.sleep(4)
driver.find_element_by_xpath("""//*[@id="footer-chart-panel"]/div[2]/span[4]""").click()
time.sleep(4)
while True:
    driver.find_element_by_xpath("""//*[@id="bottom-area"]/div[2]/div[1]/div[2]/ul/li[4]""").click()
    time.sleep(2)
    contents = pyperclip.paste()
    time.sleep(2)
    filepath = r"C:\Users\Administrator\Desktop\DATA.txt"
    time.sleep(2)
    with open(filepath, 'w') as f: # 'w' means write mode and we get the file object as f
        f.write(contents)
        time.sleep(5)   

我试过这段代码,但没有帮助

driver.switchTo().alert().accept();

这段代码也不行

driver.send_keys("Enter")

如果我右键单击弹出窗口,根本没有任何操作,所以我找不到 XPath,类 id

this is sources that (autoview) extension, i assume that this code generate this popup

function clipboard(format, data) 
    const tmp = document.oncopy;

    document.oncopy = function clipboard_oncopy(e) 
        e.clipboardData.setData(format, data);
        e.preventDefault();
    ;
    document.execCommand("copy", false, null);
    alert("Copied to Clipboard");

    document.oncopy = tmp;

【问题讨论】:

您是否尝试发送 Escape 键?这个topic 将有助于解决您的问题。 没有帮助 webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform() 【参考方案1】:

试试这个:

driver.switch_to_alert().accept()

【讨论】:

钉!谢谢

以上是关于如何使用 python selenium 关闭另一个 chrome 弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 和 Selenium 发送 ESC 键以关闭弹出窗口?

如何使用 python selenium 关闭另一个 chrome 弹出窗口

Python Selenium在浏览器关闭时检测

如何在 python 中正确关闭 Selenium WebDriver 实例?

Python+Selenium基础篇之3-打开和关闭IE/Chrome浏览器

python selenium不关闭当前浏览器修改配置