我是一名QA工程师,负责编写测试脚本。我试图设置一个URL字符串变量,该变量等于方法中当前页面的URL,并在测试方法中调用包含该变量的方法。
*编辑**** 最初我认为这是变量本身的一个问题但事实并非如此。我已经调整了我的问题以更好地代表问题
当我在与测试相同的类和方法中启动和定义URL变量时,它可以正常工作
public void RFPsCreatedStatusTest(){
RequestsataGlance.RFPinProgressbtnclick();
RequestsataGlance.CreatedClick();
String url = driver.getCurrentUrl();
System.out.println(url);
Assert.assertTrue(url.contains("url.com"), "Incorrect Page, SR list call status does not match status selected ");
但是当我在测试方法和类之外创建并调用public void(){} URL方法[createdassertion]时,它不起作用。思考?
@Test
public void RFPsCreatedStatusTest(){
RequestsataGlance.RFPinProgressbtnclick();
RequestsataGlance.CreatedClick();
RequestsataGlance.Createdassertion();
}`
答案 0 :(得分:2)
下面的行没用,因为您将在下一个语句中重新定义url变量
url = new String();
行后
url = driver.getCurrentUrl();
url将包含浏览器网址,那为什么它应包含字符串“[期望结果]”?当然它不会,因为它将包含一个URL
编辑1
来自定义
assertTrue(java.lang.String message, boolean condition)
所以请按以下方式使用
Assert.assertTrue("Incorrect Page, SR list call status does not match status selected ", url.contains("whatever.com"));
答案 1 :(得分:1)
代码中任何可以为null的唯一方法是
driver.getCurrentUrl()
返回null。 毕竟,你写了一个测试,发现了一个问题。试试吧! ; - )
顺便说一句:如果您只是写下来,您的代码将更容易阅读:
String url = driver.getCurrentUrl();