关闭

Python+selenium 怎么定位弹窗中的弹窗元素?

发表于:2023-7-17 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:知乎

  Cookie 是网站用于存储用户信息的一些数据文件,它们可以使网站记住用户的登录状态、偏好设置和本地内容等。Cookie 有两种类型:第一方 Cookie 是由您访问过的网站创建的,第三方 Cookie 是由其他网站创建的。 一般情况下可能需要获取浏览器点击弹出新窗口的 Cookie 信息的场景有:
  ·在新窗口中保持与原窗口相同的用户状态和数据。
  · 分析或测试新窗口中的第三方 Cookie,例如广告或图片等。
  · 删除或修改新窗口中的某些 Cookie,以改变网站的行为或显示。
  当使用Python调用Selenium库时,你可以通过以下步骤来获取浏览器点击弹出新窗口的Cookie信息:
  1.首先,确保你已经安装了Selenium库。你可以使用pip install selenium命令来进行安装。
  2.导入必要的模块:
  from selenium import webdriver
  from selenium.webdriver.chrome.service import Service
  from selenium.webdriver.common.by import By
  from selenium.webdriver.chrome.options import Options
  from selenium.webdriver.support.ui import WebDriverWait
  from selenium.webdriver.support import expected_conditions as EC
  设置Chrome浏览器选项,并启动浏览器:
  chrome_options = Options()
  chrome_options.add_argument("--headless")  # 在无界面模式下运行,如果需要可视化界面,可以去掉该行
  driver = webdriver.Chrome(service=Service('path/to/chromedriver'), options=chrome_options)
  确保将path/to/chromedriver替换为你的Chrome驱动程序的实际路径。
  打开网页,点击弹出新窗口的元素:
  driver.get('https://example.com')  # 将URL替换为你要访问的网页# 在此处执行点击弹出新窗口的操作,例如点击按钮或链接
  切换到新打开的窗口:
  driver.switch_to.window(driver.window_handles[-1])
  获取Cookie信息:
  cookies = driver.get_cookies()
  for cookie in cookies:
      print(cookie)
  这将打印出所有Cookie的信息。你可以根据需要进行进一步处理。
  关闭浏览器:
  driver.quit()
  这是一个使用Selenium库的Python示例代码,用于获取浏览器点击弹出新窗口的Cookie信息。记得根据实际情况进行适当的修改,以适应你的具体需求和环境。 部分网站还会限制访问,这时候可以加上爬虫代理IP提高成功率,通过设置WebDriver的代理选项来实现。以下是修改后的代码示例:
  from selenium import webdriver
  from selenium.webdriver.chrome.service import Service
  from selenium.webdriver.common.by import By
  from selenium.webdriver.chrome.options import Options
  from selenium.webdriver.support.ui import WebDriverWait
  from selenium.webdriver.support import expected_conditions as EC
  # 亿牛云(动态转发隧道代理)爬虫代理加强版 IP地址、端口号、用户名和密码 
  proxy_host = 'www.16yun.cn'
  proxy_port = '31000'
  proxy_username = '16YUN'
  proxy_password = '16IP'
  # 设置Chrome浏览器选项
  chrome_options = Options()
  chrome_options.add_argument("--headless")  # 在无界面模式下运行,如果需要可视化界面,可以去掉该行
  # 设置代理
  IPchrome_options.add_argument(f'--proxy-server=http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}')
  # 启动浏览器
  driver = webdriver.Chrome(service=Service('path/to/chromedriver'), options=chrome_options)
  # 打开网页,点击弹出新窗口的元素
  driver.get('https://example.com')  # 将URL替换为你要访问的网页
  # 在此处执行点击弹出新窗口的操作,例如点击按钮或链接
  # 切换到新打开的窗口
  driver.switch_to.window(driver.window_handles[-1])
  # 获取Cookie信息
  cookies = driver.get_cookies()
  for cookie in cookies:
      print(cookie)
  # 关闭浏览器
  driver.quit()
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号