常见问题与解决:

1.selenium中出现提示’Your connection is not private’(你的连接不是私密连接)

在Chrome中需要添加忽略认证错误:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('ignore-certificate-errors') driver = webdriver.Chrome(chrome_options=options)
driver.get('https://cacert.org/') driver.close()

在 Firefox中设置accept_untrusted_certs为True:

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True driver = webdriver.Firefox(firefox_profile=profile)
driver.get('https://cacert.org/') driver.close()

原回答:https://stackoverflow.com/questions/24507078/how-to-deal-with-certificates-using-selenium

2.鼠标悬停与选择下拉

下拉列表的时候,存在两种情况。第一种是有select标签的,这种情况下可以通过from selenium.webdriver.support.ui import Select方式实现

具体selenium代码为:

'''
第一种情形:可以通过 from selenium.webdriver.support.ui import Select
''' from selenium import webdriver
from selenium.webdriver.support.ui import Select driver = webdriver.Chrome()
driver.get('https://www.17sucai.com/pins/demo-show?id=5926')
# 切换ifrane
driver.switch_to_frame(driver.find_element_by_id('iframe'))
# 找到下拉框
selectTag = Select(driver.find_element_by_name('country-wrap')) # select标签
# 获得选择项
# 1.根据值来选择
selectTag.select_by_value('CA')
# 2.根据索引来选择
# selectTag.select_by_index(3)

但也存在没有select标签的下拉列表,这时候就需要我们手动链接到该位置。如图片情形所示,就是a标签,不是select标签,无法通过from selenium.webdriver.support.ui import Select方式实现

'''
第二种情形:手动点击
''' from selenium import webdriver
from selenium.webdriver.support.ui import Select driver = webdriver.Chrome()
driver.get('https://www.17sucai.com/pins/demo-show?id=5926')
# 切换ifrane
driver.switch_to_frame(driver.find_element_by_id('iframe'))
# 找到下拉框
selectTag = driver.find_element_by_xpath('//*[@id="dk_container_country-nofake"]').click() # 点击下拉列表位置
# 获得下拉选择项
driver.find_element_by_xpath('//*[@id="dk_container_country-nofake"]/div/ul/li[1]/a').click()

原文:https://blog.csdn.net/Claire_chen_jia/article/details/106523131

3.下载文件中文乱码/将浏览器设置为中文/改变编码

如果下载中文文件后文件名为乱码,则需要配置对应浏览器设置

options.add_argument('lang=zh_CN.UTF-8')

selenium+python配置chrome浏览器详解https://blog.csdn.net/zwq912318834/article/details/78933910

4.不显示UI调用浏览器

在不打开UI界面的情况下使用 Chrome 浏览器。用法:

option=webdriver.ChromeOptions()
option.add_argument('headless')
driver=webdriver.Chrome(chrome_options=option)

5.直接用cookie登录方法

先手动获取网页的cookie,将其序列化并存储在本地
使用到一个chrome插件EditThisCookiehttp://www.editthiscookie.com/
它有个导出功能,当你登录完后点击导出便会得到一个list格式的字符串,稍加修改就可以作为python的list来导入cookie了

#导入cookie
for item in cookies:
driver.add_cookie(item)

https://www.jianshu.com/p/773c58406bdb

6.selenium下载文件到指定的文件夹

在爬虫的时候会遇到下载文件的情况,这时候如果用Chrome浏览器点击下载,文件会自动存放到默认文件夹,一般是 我的电脑>下载 这个路径,如果我们想下载到指定文件夹,有没有办法呢?,可以试试下面的方法,在启动driver的时候就指定一个默认下载路径

from selenium import webdriver
options = webdriver.ChromeOptions()
out_path = r'D:\Projects\Spiders' # 是你想指定的路径
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': out_path}
options.add_experimental_option('prefs', prefs)
browser = webdriver.Chrome(executable_path=r'D:\Repo 3\chromedriver.exe', chrome_options=options)

7.判断文件是否下载完成

https://stackoverflow.com/questions/34338897/python-selenium-find-out-when-a-download-has-completed

↓↓↓欢迎关注我的公众号,在这里有数据相关技术经验的优质原创文章↓↓↓

Python库积累之Selenium(二)-Seleniun中的一些问题与解决方法的更多相关文章

  1. js中style.display=""无效的解决方法

    本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多 ...

  2. java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...

  3. 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法

    目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...

  4. 将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法

    本博客主要是说一下,,如何将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法. 1.先在阿里云上购买一台阿里云服务器(ECS云服务器): 2.远程连接上该服务器,在 ...

  5. VS2012中丢失ArcGIS模板的解决方法

    VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...

  6. SpringBoot拦截器中无法注入bean的解决方法

    SpringBoot拦截器中无法注入bean的解决方法 在使用springboot的拦截器时,有时候希望在拦截器中注入bean方便使用 但是如果直接注入会发现无法注入而报空指针异常 解决方法: 在注册 ...

  7. asp.net url址址中中文汉字参数传递乱码解决方法

    中文乱码是网站开发中会常碰到的问题,今天我们来讲一下关于url址址中中文汉字参数传递乱码解决方法,有需要的朋友可以参考下.在cs文件里传参的时候用UrlEncode: Response.Redirec ...

  8. @NamedEntityGraphs --JPA按实体类对象参数中的字段排序问题得解决方法

    JPA按实体类对象参数中的字段排序问题得解决方法@Entity @Table(name="complaints") @NamedEntityGraphs({ @NamedEntit ...

  9. 关于验证码在IE中不刷新的快速解决方法

    今天在做验证码的时候发现在IE中,验证码不会刷新,而谷歌等其他浏览器没有问题,所以我想到应该是缓存问题,因为IE默认的设置是如果访问地址没变化就不会去获取而是加载缓存中的内容 所以解决方案就是在验证码 ...

  10. 在启动php时,无法启动此程序,由于计算机中丢失MSVCR110.dll的解决方法

    在启动php时,运行RunHiddenconsole.exe php-cgi.exe -b 127.0.0.1:9000 -c时,出现错误:无法启动此程序,由于计算机中丢失MSVCR110.dll 方 ...

随机推荐

  1. Python爬取任意城市肯德基门店信息(json数据反序列化、提取数据、写入CSV)

    本案关键内容点:json数据反序列化.提取数据.写入CSV 创建csv,写入表头数据,脚本同目录下会创建名称为book的csv文件,且第一行插入表头内容 import csv f = open('bo ...

  2. 开源项目YtyMark文本编辑器--UI界面相关功能(关于设计模式的实战运用)

    开源项目地址 GitHub 开源地址(YtyMark-java) 欢迎提交 PR.Issue.Star ️! 1. 简述 YtyMark-java项目分为两大模块: UI界面(ytyedit-mark ...

  3. kali网卡消失解决

    问题:kali网卡消失解决如图 解决: 1.查看配置文件 └─# cat /etc/network/interfaces # This file describes the network inter ...

  4. js--弹出对话框、改变控件内容、验证输入邮箱的合法性

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. Servlet创建的三种方式

    目录 1 实现Servlet接口 2 继承GenericServlet 3 继承HttpServlet 4 web.xml配置 关于servlet的创建,我们有三种方式. 实现Servlet接口 继承 ...

  6. 【记录】Python|Python3程序测试速度的整个流程、方法对比和选取方式

    参考:Python3.7中time模块的time().perf_counter()和process_time()的区别 其他的博客太!长!了!我实在看不下去了,每次都不记得什么场景用什么函数. 让我来 ...

  7. 时间工具之“Java8 LocalDate 根据给定的日期,获取该日期上一周的周一周日,以及TemporalAdjusters的API”

    一.场景 我们的周报需要获取该月的第一个周的星期一和星期日,用于计算该星期的功能业绩(如:上产品数量) 2022-04-25 00:00:00 到 2022-05-01 23:59:592022-05 ...

  8. docker容器中编辑文件报错bash: vi: command not found问题解决

    一.问题 在docker容器中想编辑mongodb的配置文件,然后用vi就报错了 bash: vi: command not found root@bbbbeb52:/conf# vi mongod. ...

  9. 基于主成分分析(PCA)的数据降维

    一.概述   主成分分析(Principal Component Analysis,PCA)是一种用于数据降维的方法,其核心目标是在尽可能保留原始数据信息的前提下,将高维数据映射到低维空间.该算法基于 ...

  10. 鸿蒙Next开发实战教程--银行App

    昨天Mate70的官方预热直接引起网络爆炸,现在预约人数已经两百多万了,大家都这么有米吗 今天跟大家分享一个银行app实战教程. 页面虽然看起来比较复杂,但是仔细分析一下并不难,下面跟大家分享一下本项 ...