使用Selenium和Python的网站自动化

问题描述 投票:0回答:1

我为自己设定了以下任务:一个程序,在执行时会打开具有相同登录信息的同一服务(Hotmail)的多个选项卡(在Firefox中)。登录后,每个不同的Mailaccount都应在每个电子邮件标题中的特定关键字(“重要”)之后进行扫描。然后,将标题中带有特定关键字的邮件转发到另一封电子邮件(例如:重要@ domain.de)。在页面完全加载到指定的电子邮件地址之后的一分钟后,程序应搜索另一关键字(邮箱中的“重要”)并执行相同的操作。同样重要的是,它应该同时出现在每个打开的选项卡上。

我正在使用硒

到现在为止我所面临的问题:

  1. 在将每个标签设为容器标签之前,无法使用不同的登录名(会话ID)打开相同的服务。这意味着会话ID的(cookies)不会覆盖过去的ID。为此,我使用了一个名为“ Firefox多帐户容器”的加载项。到目前为止,我无法将Firefox配置文件导入WebDriver,因此我的附加组件在Webdriver中不可用。在询问如何正确导入配置文件并利用其扩展名之前,我想问一下是否有可能使firefox默认始终将选项卡作为容器打开。
  2. 使用我当前的“设备(python,硒,pycharm)甚至可以在Firefox中的选项卡/容器之间跳转吗?如何聚焦所需的容器并查看其内容以进行操作?
  3. 如何改进所需的任务?最好为每个EmailAccount编写一个脚本,然后全部启动一次,以便它们分别为每个firefox窗口完成工作?在这种情况下,我在一分钟后就不需要集中标签了。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9tMXBUYy5wbmcifQ==” alt =“到目前为止的代码屏幕”>

python windows selenium selenium-webdriver pycharm
1个回答
0
投票
  1. [尝试在geckodriver中使用您的个人资料时使用了什么代码?在您的屏幕截图中看不到任何内容。有可能以某种方式在容器中打开新标签页,但是我不确定与常规FF一起使用的给定扩展名是否一定会与geckodriver一起使用。
  2. 是的,您可以在选项卡之间跳转,这些选项卡与Selenium中的窗口基本相同。您的窗口/选项卡列表为driver.window_handles。您可以先输入tab_2 = driver.window_handles[1],然后再输入driver.switch_to_window(tab_2)
  3. 编写您的脚本一次运行一个。一旦满足了以上所有条件,就可以重构脚本以同时执行它。如果您仍无法编写以上代码,则不应将异步代码混入其中。
© www.soinside.com 2019 - 2024. All rights reserved.