问题标签 [selenium-webdriver-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
40 浏览

python - 如何使用 Selenium (Python) 打开/关闭选项卡?

我已经尝试了类似问题中的所有方法,但只有一种方法有效,那就是使用 javascript。

我想获得第二种工作方式,因为它似乎是最易读和最明智的,我在我的代码中做错了吗?或者我需要在 Selenium 中更改任何选项以启用这样的打开选项卡吗?

编辑:第二种和第三种方法根本不会产生任何结果。甚至不是一个例外。

0 投票
1 回答
41 浏览

python - 如何使用硒自动切换页面?

我正在尝试自动单击每个页面,但出现以下错误::

错误:

我希望你能帮助我

0 投票
1 回答
490 浏览

python - 使用python以JSON格式导入浏览器cookie

我一直在尝试让 selenium 将 JSON cookie 导入网站(从文件:“cookie.json”),但我真的不知道该怎么做。到目前为止,我尝试过的大多数是“driver.add_cookie(cookie1)”,其中的变量指向 cookie 文件路径。cookie 看起来像这样,是从站点导出的。

有人问我试过什么

上面的代码片段是我在网上找到的。

& 这

以上是我写的。

我应该补充一点,cookie 来自 chrome cookie 导出程序,如 Editthiscookie。希望这会有所帮助。我浏览了一堆随机论坛,似乎对其他人来说效果很好。我在这里做错了100%。

0 投票
1 回答
106 浏览

python - 使用 Selenium WebDriver 填充日期字段

当我开始熟悉这个库时,我正在尝试使用 Selenium 填写注册表以进行练习。

就是这个网站上的注册表:https ://www.fast2sms.com/

我目前正在尝试的

我从这个开始:

在那里,我单击data-target属性设置为"#signupM"使用 css 选择器的注册按钮:

然后我为这些字段设置了一些虚拟值:

我等待名称字段,然后填写:

然后电话号码和电子邮件地址:

到目前为止,一切正常,完全符合预期,但是当我尝试填写“出生日期”字段时,我遇到了问题:

我面临的问题

  1. 出生日期字段未填写。
  2. 它抛出一个错误,selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  3. 我无法提交未填写出生日期的表格。

我尝试调试的方法

  1. 重新检查 CSS 选择器
  2. 等待出生数据字段可使用 WebDriverWait 进行交互
  3. 我没有填写文本,而是尝试与单击该字段时出现的弹出窗口进行交互(我想我必须这样做,但不知道如何。)

看似重复但并非重复的问题:

使用 Python Selenium 选择特定日期(翻转日期)

在日历日期选择器上使用 Selenium

在 python 中使用 selenium 与弹出框交互

0 投票
0 回答
231 浏览

python - 在 docker 容器中运行 Selenium

控制台输出:https ://i.stack.imgur.com/x2CAN.png

我正在尝试在 docker 容器中使用 selenium 运行 python 脚本。使用 selenium 运行其他脚本没有任何问题,所以我知道这不是 chromedriver 路径的问题。当我在本地运行脚本时,它工作得很好。但是当我在容器中运行时,出现以下错误。有谁知道问题可能是什么?

代码:

Docker文件:

输出

0 投票
2 回答
76 浏览

python - Python Selenium - 如何点击动态生成的href页面链接

我正在使用 selenium 和 python 自动化一个过程。但我被一些东西困住了。我必须单击使用硒的链接。这个链接是href,每次都会动态生成。href 链接将类似于 3。对于另一个页面,它将是 66

现在来模拟这个链接的点击,有什么方法可以点击吗?如何获取动态生成的链接?我正在为 selenium webdriver 使用 python 代码。

示例尝试" self.driver.find_element(By.CSS_SELECTOR, "create_job_listing_ajax > div:nth-child(4) > div > div > div:nth-child(2) > center > a").click()//将 URL 复制为 xpath

0 投票
0 回答
38 浏览

javascript - 将 CSS 注入 Selenium 驱动程序会导致 Linux 中的 javascript 错误,而不是 macOS

下面的 python (v. 3.9.7) 函数将从标准 CSS 文件加载的 CSS 样式注入到 selenium 驱动程序对象中。虽然在 macOS (11.5.2, homebrew) 中正确应用了样式,但在 Linux (Ubuntu 20.04) 中没有应用样式并且此消息被抛出:javascript error: Invalid or unexpected token

那么字符串的哪一部分导致了问题,我如何在发送之前对字符串进行预处理?

更新:我缩小了有问题的字符串:它不是 Python 变量中的字符串,它位于加载的 CSS 文件本身内,它是包含规则中src属性的行@font-face

更新 2:好吧,感谢@cruisepandey,我发现了 CSS 中有问题的标记:它是 CSS 文件中的单引号,例如font-family: 'serif';. 用双引号替换它们可以解决问题。为什么允许在变量中使用单引号,但在 CSS 文件本身中却不允许?另外:为什么问题出现在 linux 而不是 macOS 中?

0 投票
0 回答
42 浏览

selenium - 在RobotFramework python中拖放-寻找工作方法

似乎是一个古老的讨论,但我没有找到任何有效的方法。我正在尝试拖放表格行,步骤通过但元素没有被删除。

尝试 Drag And Drop ${source} ${target}Mouse Down, Mouse Up接近。

我的 App UI 框架是 nuxt js。自动化框架是 Robotframework python。

0 投票
1 回答
58 浏览

python - Selenium - set_window_size() 总是返回与指定尺寸无关的相同大小的窗口

我正在尝试通过 Python 为 Firefox Selenium 设置窗口大小。但是,窗口总是被调整为相同的大小,与作为参数传递给set_window_size()函数的尺寸无关。

下面是我正在使用的代码:

输出的打印语句总是显示{width: 1161, height: 661}

我已将 geckodriver 更新到最新版本,并且正在使用 Ubuntu 18.04 通过 anaconda 环境运行代码。

我也尝试使用该execute_script()函数通过 JS 设置窗口大小,但我得到了相同的结果。

谁能指出我做错了什么以及如何解决?

0 投票
0 回答
52 浏览

python - Selenium python从一个站点更改另一个站点的cookie

我想像这样使用 python selenium 更改我正在访问的站点之外的 cookie(这是我的 chrome 选项卡而不是 selenium 浏览器)

曲奇饼

我输入的站点:https ://2captcha.com/tr/demo/hcaptcha?difficulty=difficult 我从框架中使用的 Cookie 站点:newassets.hcaptcha.com

起初我试图做类似的事情:

但是当我进入该站点时,hcaptcha_accecibilty cookie 不存在(这是我的 selenium 浏览器选项卡) 饼干2