鱼C论坛

 找回密码
 立即注册
查看: 2653|回复: 9

关于selenium的问题

[复制链接]
发表于 2020-10-10 22:44:28 | 显示全部楼层 |阅读模式
45鱼币
怎么向建立出的浏览器发送ctrl+t(或者直接建立新的窗口啊?)

不能是用下面的方法:
from selenium import webdriver
browser =webdriver.Firefox()
url ='http://www.4399.com'
browser.execute_script(f'window.open("{url}")')

这方法没办法建新超过21个窗口啊
例如:
from selenium import webdriver
browser =webdriver.Firefox()

id_list =['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '48', '50', '51', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '67', '68', '69', '72', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '89', '90', '91', '92', '96', '98', '99', '101', '102', '103', '104', '105', '106', '107', '110', '111', '112', '113', '114', '115', '117', '119', '120', '121', '122', '126', '127', '131', '133', '134', '136', '141', '142', '143', '145', '150', '154', '157', '161', '163', '164', '201', '202', '203', '222', '223', '235', '236', '238', '240', '245', '246', '254', '266', '267', '268', '350', '360', '412', '420', '421', '427', '429', '432', '497', '498', '516', '517', '518', '523', '555', '777', '875', '876']

for id in id_list:
    url =f'https://lol.qq.com/data/info-defail.shtml?id={id}'
    browser.execute_script(f'window.open("{url}")')

所以怎么向browser发送ctrl+t?
或者设置browser ,让浏览器"不阻止网站弹出式窗口"(超过20个后 ,browser.current_window_handle的窗口会弹出提示:"Firefox阻止了此网站打开超过100个弹出式窗口" ,如果能设置到的话 ,应该就能用上面的方法打开所有页面了)
   



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 00:40:12 | 显示全部楼层
本帖最后由 疾风怪盗 于 2020-10-11 00:41 编辑

换成谷歌浏览器,就不存在这个问题
  1. from selenium import webdriver
  2. browser =webdriver.Chrome()

  3. id_list =['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '48', '50', '51', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '67', '68', '69', '72', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '89', '90', '91', '92', '96', '98', '99', '101', '102', '103', '104', '105', '106', '107', '110', '111', '112', '113', '114', '115', '117', '119', '120', '121', '122', '126', '127', '131', '133', '134', '136', '141', '142', '143', '145', '150', '154', '157', '161', '163', '164', '201', '202', '203', '222', '223', '235', '236', '238', '240', '245', '246', '254', '266', '267', '268', '350', '360', '412', '420', '421', '427', '429', '432', '497', '498', '516', '517', '518', '523', '555', '777', '875', '876']

  4. for id in id_list:
  5.     url =f'https://lol.qq.com/data/info-defail.shtml?id={id}'
  6.     browser.execute_script(f'window.open("{url}")')
复制代码


所以应该是浏览器设置里找,肯定有个限制打开网页个数的设置
屏幕截图 2020-10-11 003901.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-11 01:20:03 From FishC Mobile | 显示全部楼层
疾风怪盗 发表于 2020-10-11 00:40
换成谷歌浏览器,就不存在这个问题



3q。用惯火狐。不过你这个确实可以作为备选答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-11 11:16:59 | 显示全部楼层
疾风怪盗 发表于 2020-10-11 00:40
换成谷歌浏览器,就不存在这个问题

问下 ,你再试试添加个下面代码
for id in id_list:
    url =f'https://lol.qq.com/data/info-defail.shtml?id={id}'
    browser.execute_script(f'window.open("{url}")')
    #添加的代码↓
    browser.switch_to.window(browser.window_handles[-1])

我不知道是什么原因 ,切换窗口后再打开的话 ,速度确实慢了很多,不知道是不是可以设置还是只能等(这其实涉及到控制窗口的顺序的问题 )
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 12:10:09 | 显示全部楼层
丨游戏灬需要 发表于 2020-10-11 11:16
问下 ,你再试试添加个下面代码
for id in id_list:
    url =f'https://lol.qq.com/data/info-defail.s ...

加了之后,确实慢了很多,基本上等于打开一个窗口后再开新的。。。。。
之前没加时,秒开N个,然后再加载内容,蛮卡的。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-11 13:15:43 | 显示全部楼层
疾风怪盗 发表于 2020-10-11 12:10
加了之后,确实慢了很多,基本上等于打开一个窗口后再开新的。。。。。
之前没加时,秒开N个,然后再加 ...

还有个问题 ,因为我不想将软件安装到C盘 ,但根据网上的更改Chrome路径的方法后 ,selenium会报错:selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary
而网上的处理方法都太麻烦 ,
我想问下 ,是不是Chrome只能安装到默认位置 ,还是说有其他既能安装到其他位置 ,有能正常使用selenium的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 13:22:28 | 显示全部楼层
丨游戏灬需要 发表于 2020-10-11 13:15
还有个问题 ,因为我不想将软件安装到C盘 ,但根据网上的更改Chrome路径的方法后 ,selenium会报错:selenium ...

我当时应该是默认安装了,安装到其他位置是否可以就不清楚了。。。。。。。。。。
C:\Users\DELL\AppData\Local\Google\Chrome
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-11 19:36:13 From FishC Mobile | 显示全部楼层
疾风怪盗 发表于 2020-10-11 13:22
我当时应该是默认安装了,安装到其他位置是否可以就不清楚了。。。。。。。。。。
C:%users\DELL\AppDat ...

我试了下。应该是chrome浏览器在被调用切换屏幕时,就是那么慢的……(这样看来,还是火狐好点(我勉强可以把窗口句柄列表按每20个来分,不过最终速度差不多))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-11 20:06:30 From FishC Mobile | 显示全部楼层
丨游戏灬需要 发表于 2020-10-11 19:36
我试了下。应该是chrome浏览器在被调用切换屏幕时,就是那么慢的……(这样看来,还是火狐好点(我勉强可以 ...

好吧,我只装了chrome的驱动。。。还是觉得这个好用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-13 15:01:35 | 显示全部楼层
疾风怪盗 发表于 2020-10-11 00:40
换成谷歌浏览器,就不存在这个问题

我一直用的谷歌,而且程序是java,没发现过这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 15:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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