- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Python 和 Selenium 2.44。当测试失败时,我不能在调试时将失败前的所有代码都取消注释,因为不会为浏览器声明驱动程序。因此,每当我尝试修复某些东西时,我总是必须在测试用例中打开一个新的浏览器。这相当……慢,因为我必须登录,这又增加了 30 秒(不是毁灭性的,但很烦人)。我想知道是否有办法让我继续一个 session ,或者做一些允许我在中途开始测试的方法(所以如果我已经打开了网页,我可以立即开始点击东西而不是打开一个新的浏览器)。这可能吗?
例如,如果我有以下内容:
driver = webdriver.Firefox()
driver.get("google.com")
driver.find_element_by_xpath("//input[@id='gbqfq']").send_keys("cats" + Keys.RETURN)
这应该会打开 Firefox,转到 google,然后搜索 cats。不过,假装在真正进入 google 页面之前你必须做很多事情。现在,如果它在搜索猫时失败,我能够测试以查看我是否修复了代码的唯一方法是重新运行测试(webdriver.Firefox()
将打开一个新浏览器)。而不是那样,假设我仍然打开谷歌,我希望 selenium 测试只是在以前的浏览器和谷歌页面上开始(因此说代码中的第一步是 send_keys("cats ")
)。这可能吗?
我认为这是一个类似的问题,但它没有被选中作为回答:How to resume browser session or use existing browser window with Selenium-Python?
这个看起来也很相似,只与 Java 有关:How do I rerun Selenium 2.0 (webdriver) tests on the same browser?
谢谢。
最佳答案
查看 pdb:https://docs.python.org/2/library/pdb.html
将它放在您的代码中将停止测试的进行,直到您告诉它在您的 shell 中继续。
使用您的代码片段:
from pdb import set_trace
driver = webdriver.Firefox()
driver.get("google.com")
set_trace()
driver.find_element_by_xpath("//input[@id='gbqfq']").send_keys("cats" + Keys.RETURN)
将在获取 url 后停止执行,允许您进行修补,然后从测试停止的地方继续。
或者,在调试时,您可以删除 driver.quit() 语句,无论它在哪里,这将使浏览器在断言失败的任何地方保持打开状态。但是,如果您将 Django 之类的框架与 LiveTestServer 客户端一起使用,您将无权进一步浏览该站点。 pdb 将允许您保持测试服务器处于事件状态。
关于带有 Selenium 的 Python : rerun on pre-existing browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28118130/
我在 SQL 查询中使用了一个简单的 IF NOT EXISTS/WHERE NOT EXISTS 语句(我都尝试过),但我总是收到 mysql 错误,不知道为什么。尝试使用不同的引号,检查我的 My
我有 2 个表:tbl1 和 tbl2。我想从 tbl1 返回一行,其中包含以下列:col1、col2、col3、can_be_deleted 、有重要项目。这个想法是,can_be_deleted
如果您是 "t1".persona_1_id = 2,则预期结果应返回 persona_id = 4。 like --- id persona_1_id persona_2_id liked 1 2
我遇到了这个用于执行幂等插入的 github SQL 代码示例。完全按照我想要的方式工作。我不想使用 EXISTS,因为我觉得它有点困惑。可以使用联接对相同的操作进行编码吗? 下面是我在 github
public bool CheckTblExist(string TblName) { try { string cmTxt = "s
表1 Id Name DemoID 1 a 33 2 b 44 3 c 33 4 d 33 5 e 44 表2 Id DemoID IsT
我对 SQL 非常陌生。我想知道当我使用“IF EXISTS”或“IF NOT EXISTS”时会发生什么。例如:以下两个语句有什么区别: 语句 1:(存在) IF EXISTS( SELECT OR
我正在更新 exist-db 集合中的 XML 文件,我必须检查是否存在 id 以决定是否必须在我的文档中替换或插入某些内容。 我注意到随着文件的增长,查询执行时间显着恶化,我决定为我的文件添加一个索
我有一个正在尝试更新的数据库,但我不明白为什么会收到有关不存在的列的奇怪错误。当我使用“heroku pg:psql”访问数据库时,我完全可以看到该列。我找到了couple其他questions遇到类
我有一个这样的查询 SELECT ... FROM ... WHERE (SELECT EXISTS (SELECT...)) which did not return anything th
我有一个可以对数据库执行插入和更新的程序,我从 API 获取数据。这是我得到的示例数据: $uname = $get['userName']; $oname = $get['offerNa
我的批处理文件中有这个脚本 -- if not exist "%JAVA_HOME%" ( echo JAVA_HOME '%JAVA_HOME%' path doesn't exist) -
有没有办法让 Directory.Exists/File.Existssince 区分大小写 Directory.Exists(folderPath) 和 Directory.Exists(folde
考虑使用这两个表和以下查询: SELECT Product. * FROM Product WHERE EXISTS ( SELECT * FROM Codes
我正在使用 Subclipse 1.6.18 使用 Eclipse 3.72 (Indigo) 来处理 SVN 1.6 存储库。这一切都在 Ubuntu 下运行。 我有一个项目,在我更新我的 Ecli
我正在尝试使用 Terraform 配置 Azure 存储帐户和文件共享: resource "random_pet" "prefix" {} provider "azurerm" { versi
我有兴趣为需要使用 NOT EXISTS 的应用程序编写查询。子句来检查一行是否存在。 我正在使用 Sybase,但我想知道一般 SQL 中是否有一个示例,您可以在其中编写具有 NOT EXISTS
我正在尝试使用 Terraform 配置 Azure 存储帐户和文件共享: resource "random_pet" "prefix" {} provider "azurerm" { versi
下面是代码示例: CREATE TABLE #titles( title_id varchar(20), title varchar(80)
我曾经这样编写 EXISTS 检查: IF EXISTS (SELECT * FROM TABLE WHERE Columns=@Filters) BEGIN UPDATE TABLE SET
我是一名优秀的程序员,十分优秀!