0


Python:Selenium页面显示不全,元素定位报错->全屏显示页面。

Python:Selenium全屏打开网页。

故障分析:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“xpath”,“selector”:“//*[@id=“userName1”]”}

一、背景

在学习selenium时,我们获取网页上的数据,会发现出现一种情况,元素明明在页面上,但却怎么也定位不上。经过排查,发现执行程序时打开网页状态为窗口化的形式,导致一部分没有显示出来的数据,就没有加载出来,所以我们通过正常元素定位是定位不到的。
我们可以将打开网页的模式改成全屏模式,这样就可以保证元素完全加载出来。

二、问题现象

2.1 代码显示
import time

from selenium.webdriver.common.by import By
from selenium import webdriver

url='https://www.baidu.com/'
driver=webdriver.Chrome()
driver.get(url)
2.2 页面显示

在这里插入图片描述
此时页面显示为这样的窗口化,因此在某些页面上,被隐藏部分的内容,这时没有刷新出来,无法通过元素定位。

三、解决方案

3.1 代码展示

这种情况最直白的方式就是将窗口化修改成全屏状态显示,我们可以通过options这个参数进行设置。如下:

import time

import selenium.webdriver.chrome.options
from selenium.webdriver.common.by import By
from selenium import webdriver
#配置Chrome的选项
options=webdriver.ChromeOptions()#设置Chrome打开方式为全屏打开
options.add_argument('start-maximized')
url='https://www.baidu.com/'#调用配置参数
driver=webdriver.Chrome(options=options)
driver.get(url)
time.sleep(10)
3.2 页面显示

默认打开就是全屏显示:
在这里插入图片描述

四、总结

4.1 推荐

隐藏页面的属性见文章:Selenium隐藏浏览器页面,更改下载路径见文章:Selenium修改默认下载文件路径。

4.2 拓展

浏览器的一些打开方式、属性等都可以通过更改

options

参数进行修改。在这里我罗列了一些仅供参考。可根据自己的需要进行帅选,如有疑问可共同讨论。

options.add_argument(‘headless’)# 无头模式
options.add_argument(‘window-size={}x{}’.format(width, height))# 直接配置大小和set_window_size一样
options.add_argument(‘disable-gpu’)# 禁用GPU加速
options.add_argument(‘proxy-server={}’.format(self.proxy_server))# 配置代理
options.add_argument(’–no-sandbox’)# 沙盒模式运行
options.add_argument(’–disable-setuid-sandbox’)# 禁用沙盒
options.add_argument(’–disable-dev-shm-usage’)# 大量渲染时候写入/tmp而非/dev/shm
options.add_argument(’–user-data-dir={profile_path}’.format(profile_path))# 用户数据存入指定文件
options.add_argument('no-default-browser-check)# 不做浏览器默认检查
options.add_argument("–disable-popup-blocking")# 允许弹窗
options.add_argument("–disable-extensions")# 禁用扩展
options.add_argument("–ignore-certificate-errors")# 忽略不信任证书
options.add_argument("–no-first-run")# 初始化时为空白页面
options.add_argument(’–start-maximized’)# 最大化启动
options.add_argument(’–disable-notifications’)# 禁用通知警告
options.add_argument(’–enable-automation’)# 通知(通知用户其浏览器正由自动化测试控制)
options.add_argument(’–disable-xss-auditor’)# 禁止xss防护
options.add_argument(’–disable-web-security’)# 关闭安全策略
options.add_argument(’–allow-running-insecure-content’)# 允许运行不安全的内容
options.add_argument(’–disable-webgl’)# 禁用webgl
options.add_argument(’–homedir={}’)# 指定主目录存放位置
options.add_argument(’–disk-cache-dir={临时文件目录}’)# 指定临时文件目录
options.add_argument(‘disable-cache’)# 禁用缓存
options.add_argument(‘excludeSwitches’,[‘enable-automation’])# 开发者模式
标签: selenium python

本文转载自: https://blog.csdn.net/weixin_41331069/article/details/132561814
版权归原作者 小小狒狒君 所有, 如有侵权,请联系我们删除。

“Python:Selenium页面显示不全,元素定位报错->全屏显示页面。”的评论:

还没有评论