没有这样的元素:无法在生产环境中使用 chromedriver 和 Selenium 定位元素

2023-11-21

我的 selenium chromedriver 有问题,我无法弄清楚是什么原因造成的。几周前,一切都工作正常,突然这个错误开始出现。 问题来自以下函数。

 def login_(browser):
    try:
        browser.get("some_url")
        # user credentials
        user = browser.find_element_by_xpath('//*[@id="username"]')
        user.send_keys(config('user'))
        password = browser.find_element_by_xpath('//*[@id="password"]')
        password.send_keys(config('pass'))
        login = browser.find_element_by_xpath('/html/body/div[1]/div/button')
        login.send_keys("\n")
        time.sleep(1)
        sidebar = browser.find_element_by_xpath('//*[@id="sidebar"]/ul/li[1]/a')
        sidebar.send_keys("\n")
        app_submit = browser.find_element_by_xpath('//*[@id="sidebar"]/ul/li[1]/ul/li[1]/a')
        app_submit.send_keys("\n")
    except TimeoutException or NoSuchElementException:
        raise LoginException

该函数在开发环境(macOS 10.11)中运行没有问题,但在生产环境中抛出以下错误:

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="sidebar"]/ul/li[1]/a"}
(Session info: headless chrome=67.0.3396.79)
(Driver info: chromedriver=2.40.565383 (76257d1ab79276b2d53ee97XXX),platform=Linux 4.4.0-116-generic x86_64)

我已经在每个环境中更新了 Chrome 和 chromedriver(分别为 v67 和 2.40)。我也给了更多time.sleep(15)。但问题仍然存在。我最新的猜测是,网络驱动程序的初始化可能无法正常工作:

def initiate_webdriver():
   option = webdriver.ChromeOptions()
   option.binary_location = config('GOOGLE_CHROME_BIN')
   option.add_argument('--disable-gpu')
   option.add_argument('window-size=1600,900')
   option.add_argument('--no-sandbox')
   if not config('DEBUG', cast=bool):
       display = Display(visible=0, size=(1600, 900))
       display.start()
       option.add_argument("--headless")
   else:
       option.add_argument("--incognito")
   return webdriver.Chrome(executable_path=config('CHROMEDRIVER_PATH'), chrome_options=option)

因为,如果Display不起作用,那么可能没有提到的sidebar但还有其他一些按钮。

所以我的问题是:有人遇到过类似的问题吗?有没有办法知道驱动程序寻找此类元素时页面显示的内容是什么?


据报告,在您提供登录信息后,未找到元素错误,因此我认为登录失败并且页面重定向到某个地方。您可以使用屏幕截图选项对页面进行屏幕截图,然后查看驱动程序加载了哪个页面。

driver.save_screenshot("path to save screen.jpeg")

您还可以保存原始 html 代码并检查同一页面。

网络驱动程序截图

在 Python 中使用 Selenium 在 Firefox 上保存网页

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有这样的元素:无法在生产环境中使用 chromedriver 和 Selenium 定位元素 的相关文章

  • 获取 .wav 文件长度或持续时间

    我正在寻找一种方法来找出 python 中音频文件 wav 的持续时间 到目前为止我已经了解了 pythonwave图书馆 mutagen pymedia pymad我无法获取 wav 文件的持续时间 Pymad给了我持续时间 但它不一致
  • 多处理中的动态池大小?

    有没有办法动态调整multiprocessing Pool尺寸 我正在编写一个简单的服务器进程 它会产生工作人员来处理新任务 使用multiprocessing Process对于这种情况可能更适合 因为工作人员的数量不应该是固定的 但我需
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • Matplotlib:如何有效地将大量线段着色为独立渐变

    Python 绘图库 如何有效地将大量线段着色为独立渐变 已经 阅读this https stackoverflow com questions 8500700 how to plot a gradient color line in ma
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • 如何使用scrapy检查网站是否支持http、htts和www前缀

    我正在使用 scrapy 来检查某些网站是否工作正常 当我使用http example com https example com or http www example com 当我创建 scrapy 请求时 它工作正常 例如 在我的pa
  • Python Anaconda:如何测试更新的库是否与我现有的代码兼容?

    我在 Windows 7 机器上使用 Python 2 7 Anaconda 安装进行数据分析和科学计算 当新的库发布时 例如新版本的 pandas patsy 等 您建议我如何测试新版本与现有代码的兼容性 是否可以在同一台机器上安装两个
  • 使用 for 循环创建一系列元组

    我已经搜索过 但找不到答案 尽管我确信它已经存在了 我对 python 很陌生 但我以前用其他语言做过这种事情 我正在以行形式读取数据文件 我想将每行数据存储在它自己的元组中 以便在 for 循环之外访问 tup i inLine wher
  • Python 中维基百科 API 中的 DisambiguationError 和 GuessedAtParserWarning

    我想获得维基百科与搜索词相关的可能且可接受的名称列表 在这种情况下是 电晕 当输入以下内容时 print wikipedia summary Corona 这给出了以下输出 home virej local lib python3 8 si
  • 使用另一个数据帧在数据帧中创建子列

    我对 python 和 pandas 很陌生 在这里 我有一个以下数据框 did features offset word JAPE feature manual feature 0 200 0 aa 200 200 0 200 11 bf
  • Python bug - 或者我的愚蠢 - 扫描字符串文字时 EOL

    我看不出以下两行之间有显着差异 然而第一个解析 而后者则不解析 In 5 n Axis of Awesome In 6 n Axis of Awesome File
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • 如何处理 StaleElementReferenceException

    我正在为鼠标悬停工作 我想通过使用 for 循环单击每个链接来测试所有链接的工作条件 在我的程序中 迭代进行一次 而对于下一次迭代 它不起作用并显示 StaleElementReferenceException 如果需要 请修改代码 pub
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome
  • python从二进制文件中读取16字节长的双精度值

    我找到了蟒蛇struct unpack 读取其他程序生成的二进制数据非常方便 问题 如何阅读16 字节长双精度数出二进制文件 以下 C 代码将 1 01 写入二进制文件三次 分别使用 4 字节浮点型 8 字节双精度型和 16 字节长双精度型

随机推荐

  • 安装react-native-firebase/app后,在react-native ios中构建将失败

    安装后react native firebase email protected with react native 0 68 1 using use frameworks 并删除flipper在项目的podfile中 但是当我运行时npx
  • 远程通知 iOS 8

    如何在 iOS 8 中获取用于远程通知的设备令牌 我用的方法didRegisterForRemoteNotificationsWithDeviceToken in AppDelegate在 iOS 阅读 UIApplication h 中的
  • 流操作应用于列表元素的顺序是什么? [复制]

    这个问题在这里已经有答案了 假设我们有一个标准的流操作方法链 Arrays asList a bc def stream filter e gt e length 2 map e gt e length forEach e gt Syste
  • 如何在Android中将彩色图像变成黑白图像

    我想知道当我在android中向用户显示彩色图像 我从网上下载的 时如何将其转换为黑白图像 有人能在你的 Android 作品中发现这个要求吗 请告诉我 谢谢 拉克什曼 您好 您可以使用对比度使图像变为黑白 看代码 public stati
  • C# - 检测人脸并裁剪图像

    我正在写一个HttpHandler在 C 中 它提供调整大小的图像等等 没问题 我们有数百万个处理程序可以用作参考 问题是我的用户照片是用 传统 尺寸拍摄的 如 4 3 和 16 9 但该处理程序需要以照片 ID 尺寸 4 厘米 x 3 厘
  • 使用 Byte Buddy 在运行时添加方法注释

    几天来我一直在寻找 如何在运行时向方法添加注释 的答案 并找到了这个名为 Byte Buddy 的很棒的工具 并使用了它 但仍然无法使其按照我的需要工作 我确信从这个问题来看它一定能够做到这一点Byte Buddy 可以在运行时创建字段和方
  • Eclipse pydev 自动建议在某些情况下不起作用

    我的问题可能很愚蠢 我希望有人成功解决这个问题 有时我在自动完成框中看不到正确的建议 Eclipse 3 5 2 PyDev 1 5 7 例如 import email fp open my eml rb msg email message
  • 如何在 BigQuery 中获取两个数组的交集

    我有这样的数据 id col1 col2 1 1 2 2 3 2 4 4 6 6 7 我想要这样的数据 id col3 1 2 2 6 有什么聪明的解决方案吗 您可以使用INTERSECT DISTINCT build example ta
  • 获取文件的最后n行,类似于tail

    我正在为 Web 应用程序编写一个日志文件查看器 为此我想对日志文件的行进行分页 文件中的项目基于行 最新项目位于底部 所以我需要一个tail 可以读取的方法n线从底部开始并支持偏移 这是我想出的帽子 def tail f n offset
  • gwt 序列化策略托管模式不同步

    在托管模式下运行 GWT 应用程序 gwt 2 0 4 时 调用在远程 Tomcat 上运行的 RPC 方法时 出现 GWT 序列化异常 INFO GwtRpcEventSrvc ERROR The serialization policy
  • 阿帕奇骆驼和杰克逊

    我正在尝试 apache camel 并且设置了一个基本路由 通过 http4 组件调用 http 服务 通过 unmarshal json JsonLibrary Jackson 转换结果 然后打印出部分响应在 bean 组件中 我遇到的
  • 在 C++ 中使用“this”关键字[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中过度使用 this 是否会产生代码异味 什么时候应该在 C 中使用 this 关键字 有什么理由使用这个 gt 在 C 中 是关键字this通常省略 例如 Person Person int
  • python:扩展 ASCII 代码

    你好 我想知道如何在 python 中附加然后打印扩展的 ASCII 代码 我有以下内容 code chr 247 li li append code print li python 打印输出的结果是 xf7 而它应该是除号 如果我直接简单
  • Angular2 错误 - 是否包含平台模块(BrowserModule)?

    我只是想运行一个简单的index html 页面Angular2 但它在控制台中向我显示了 zone js 中的错误 Unhandled Promise rejection No ErrorHandler Is platform modul
  • MySQL Workbench“正在获取...”——无法浏览数据库

    我最近遇到了很多问题 基本上是自从我上次升级 XAMPP for OSX v1 7 3 和 或我的 MySQL GUI 工具以来 使用MySQL工作台 v5 2 44 我可以很好地连接到在 XAMPP 中运行的数据库 但尝试浏览任何数据库
  • 实体框架选择上个月记录

    我有员工工资表 其中包含 public partial class S EmployeeSalary public int SalaryId get set public int TypeId get set public int User
  • iOS Apple 开发者会员中心 - 如何代表客户提交应用程序

    我需要代表客户提交应用程序 但我只有团队管理员权限 没有团队代理访问权限 我如何通过 Xcode 为他们提交应用程序 我是否必须拥有团队代理的用户名 密码才能执行此操作 作为管理员 您几乎可以做所有事情 有一张图片 Surprisingly
  • 使用 C# 自动生成字母数字唯一 ID

    字符串总长度为 5 个字符 我有一个场景 ID 开头 A0001 并以 A9999 结尾 B0001 至 B9999 直至 F0001 至 f9999 在那之后 然后从 FA001 到 FA999 FB001 至 FB999 直至 FFFF
  • .NET 3.5/VS 2008 上 ASP.NET Web 服务的自定义 HTTP 基本身份验证

    我正在重构一个工作的 ASP NET Web 应用程序 以使用 ASP NET Web 服务公开 Web 服务接口 根据Web 服务身份验证 最佳实践 通过 https 进行基本身份验证是可行的方法 让我们假设它是 而不是做 WS Secu
  • 没有这样的元素:无法在生产环境中使用 chromedriver 和 Selenium 定位元素

    我的 selenium chromedriver 有问题 我无法弄清楚是什么原因造成的 几周前 一切都工作正常 突然这个错误开始出现 问题来自以下函数 def login browser try browser get some url u