【发布时间】:2017-09-20 10:22:11
【问题描述】:
如果问题的主题令人困惑,请原谅我[请编辑主题]。
我很难理解/实现这个非常明显的用例。我敢肯定,肯定有一个我想不出的简单解决方案。
我的代码:
Response response = driver.execute("findElement", "{using=xpath, value=//*[@id='myID']}");
System.out.println(response.toString());
现在这个System.out.println 打印出来了:
(Response: SessionID: ffcebc9226c9671e7f6725a3b1f5a96c, Status: 0, Value: [org.openqa.selenium.remote.RemoteWebElement@c6bdd2e4 -> unknown locator])
由于已知原因,它没有正确打印完整的对象。因此,
我想@Override toString Response 类的方法。
现在我的困难是,如果我 extends Response 类如 CommandResponse 然后使用 CommandResponse 的类型转换如下:
CommandResponse response = (CommandResponse) driver.execute("findElement", "{using=xpath, value=//*[@id='myID']}");
我得到错误:
java.lang.ClassCastException: org.openqa.selenium.remote.Response 不能转换为 src.main.CommandResponse
所以,我的问题是,如何正确覆盖?
请指教。
【问题讨论】:
-
覆盖它的原因是什么?为什么直接使用 driver.execute?
-
@TarunLalwani:我实际上是在 DB 中记录 Command、CommandParam、CommandResponse,然后尝试使用它们重播。这是根据我的用例要求。
标签: java selenium overriding tostring