鱼C论坛

 找回密码
 立即注册
查看: 1821|回复: 5

selenium 模块的窗口切换的问题

[复制链接]
发表于 2019-8-26 17:38:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想使用QQ登陆知乎,可是为什么这个窗口不切换?
我使用了窗口切换代码的,为什么不切换呢?
python 3.7   在pycharm中安装的 selenium
结果提示 ‘未能成功使用QQ登录’
求助
  1. from selenium import webdriver
  2. import time

  3. driver = webdriver.Chrome(executable_path='chromedriver.exe')
  4. url = 'https://www.zhihu.com/signin'
  5. driver.get(url)

  6. try:
  7.     driver.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div[2]/span[2]/div[2]').click()
  8. except:
  9.     print('未能成功点击社交账号登陆')
  10. # 切换浏览窗口
  11. all_handles = driver.window_handles
  12. driver = driver.switch_to.window(all_handles[1])

  13. try:
  14.     time.sleep(5)
  15.     driver.find_element_by_xpath('//*[@id="img_out_1948281933"]').click()
  16. except:
  17.     print('未能成功使用QQ登录')

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-27 08:04:47 From FishC Mobile | 显示全部楼层
浏览器是独立的环境,不会与操作系统内其他进程进行交互的,这是为了测试时候考虑的。
如果你想通过那个跳转页面,直接点击里面的头像登录是办不到的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-27 08:05:26 From FishC Mobile | 显示全部楼层
无头浏览器
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-27 15:00:08 | 显示全部楼层

大佬,请问应该怎么做呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-27 17:23:57 | 显示全部楼层
本帖最后由 Stubborn 于 2019-8-27 17:26 编辑
  1. # 获取当前句柄和切换到新的网页窗口
  2.         num = self.driver.window_handles
  3.         self.driver.switch_to.window(num[1])

  4.         # 判断网页是否存在7天热门文章
  5.         response_text = self.driver.page_source
  6.         result = re.findall(r'(.*?)7天热门', response_text, flags=re.S)

  7.         # 存在则写入
  8.         if result:
  9.             response = re.findall(r'<!.*?====文章===.*?-->(.*?)<!-- 询购', response_text, flags=re.S)[0]
  10.             response = "{% extends 'base.html' %}\n{% block content %}\n"+response+"\n{% endblock %}"
  11.             get_html = SeleniunXinbang.get_font_file_path(frequency)
  12.             with open(get_html, 'a',encoding='utf-8') as f:
  13.                 f.write(response) # bytes(response, encoding='utf-8')

  14.             # 切换回原来窗口
  15.             self.driver.close()
  16.             self.driver.switch_to.window(num[0])
复制代码


https://fishc.com.cn/forum.php?m ... 43368&ctid=1467
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-27 20:22:12 | 显示全部楼层
木羊羽 发表于 2019-8-27 15:00
大佬,请问应该怎么做呢?

账号密码登陆啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-17 20:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表