gpt4 book ai didi

python - Selenium 与 Firefox - 优雅地将控制权留给用户

转载 作者:行者123 更新时间:2023-12-01 08:26:58 26 4
gpt4 key购买 nike

我使用 Atlassian Jira 作为变更跟踪工具。我必须手动输入多个字段并决定自动化。为了自动化 Jira 问题创建过程,我决定将 Selenium 与 Firefox 60.0 结合使用。

当我执行 Selenium 脚本时,它成功打开创建问题对话框,填充可自动化字段。然后脚本停止,因为用户必须手动输入摘要和描述字段。

我没有调用 webdriver.quit() 因为我希望用户继续创建过程。但是,当脚本结束时,Jira 服务器连接关闭(我通过单击其他按钮来理解这一点,并发出警告说 Jira 服务器可能已关闭等),并且即使我填写了所有必填字段,创建问题提交按钮也会变得无响应.

如果我自动单击“创建问题提交”按钮并预先使用占位符文本填充必填字段,那么它会毫无问题地创建问题。但你必须明白,我永远不会允许用户根据设计决定自动创建问题。我只想填充空白字段,在创建问题对话框窗口中选择选项,然后将其余的留给用户。

我在 Internet Explorer 11.0 中没有看到这个问题(脚本结束后,我可以单击“创建问题提交”按钮并创建),但它的网络驱动程序有错误,整个脚本在大约 30 秒内完成,卡在不同的部分每次。

我认为原因是该公司使用了不被认可的Jira证书。我不是网络开发人员,但我在 Firefox 中收到 SEC_UNKNOWN_ISSUER 错误,我相信 Firefox 比 IE 11 更严格。我认为 Selenium 有绕过 Firefox 安全措施的机制,但一旦脚本结束,我就受到 Firefox 的监管,它切断我与 Jira 服务器的连接。无论如何,我添加了代码片段来信任未知的证书。这是下面的代码;

binary = FirefoxBinary(<binary_path>)
profile = FirefoxProfile()
profile.accept_untrusted_certs = True
driver = Firefox(firefox_binary=binary, firefox_profile=profile)

fill_some_fields()
select_some_options()

我解决此问题的方法是在退出脚本之前添加 sleep(100)。如果用户在 100 秒内单击创建问题提交按钮,则会创建问题。如果没有,脚本结束并且 Jira 连接丢失。但我需要一个更好的解决方案,因为用户可能需要超过 100 或任何任意时间延迟。

最佳答案

这个问题非常广泛......所以我会尽力帮助解决最后一个问题

I need a better solution since the user might take more than 100 or any arbitrary time delay

此解决方案尝试等待用户交互,只需添加确认按钮即可确认任务已完成...

我发现您尝试过使用 IE,所以我猜您正在使用 Windows...

在这种情况下:如果您只是在寻找一种等待人类交互的方法,您可以使用 win32uis MessageBoxwin32cons MB_SYSTEMMODAL 创建一个带有确认按钮的窗口,以确认用户已完成自动化无法完成的任务...

她就是一个例子:

 import win32ui
from win32con import MB_SYSTEMMODAL

start = win32ui.MessageBox("fill empty fields", "Instructions", MB_SYSTEMMODAL)
if start == 1:
# do the rest of the automation...
pass

希望这至少可以帮助您解决用户交互部分...

关于python - Selenium 与 Firefox - 优雅地将控制权留给用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54178062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com