gpt4 book ai didi

java - getTitle() 函数在 Selenium Web 驱动程序中返回不正确的结果

转载 作者:行者123 更新时间:2023-11-28 21:24:44 29 4
gpt4 key购买 nike

我正在尝试运行一个简单的自动化测试脚本来获取网页标题并通过 Java 和 IE 在 selenium-webdriver 中使用来验证它,但是 getTitle() 方法返回奇怪的结果。

我可以看到当我最初运行我的测试脚本时正在加载一个具有以下 URL 的默认页面,

http://localhost:44585/

然后它导航到我的目标 URL(在脚本中提到)。

但脚本仍然从本地主机 URL 而非目标 URL 捕获页面标题。请告诉我如何绕过默认 ( http://localhost:44585/) 页面。

脚本

    public class start_with {
public static void main (String [] args)
{
String url ="http://google.com";
String title = "Google";
String Actual_title;
System.setProperty("webdriver.ie.driver", "C:\\..\\IEDriverServer.exe");
WebDriver my_browser;
my_browser = new InternetExplorerDriver();
my_browser.get(url);
Actual_title = my_browser.getTitle();
if ( Actual_title.contentEquals(title))
System.out.println(" Test Passed");
else
System.out.println(" Test Failed \n Title is "+ Actual_title);
my_browser.close();
}
}

最佳答案

关于你的脚本的几句话-

对于 Selenium 3.4.0、IEDriverServer 3.4.0 和 IE 10.0.x,我在您的代码中没有发现任何问题,但这里有几点:

  1. 加载默认页面 http://localhost:44585/ - 是的,这就是 IEDriverServer 的工作方式。我们没办法。

  2. WebDriver my_browser; - 作为一种良好的编程习惯,您应该使您的代码易于理解以供审查和同行审查。因此 WebDriver 的实例应该是 driver 或类似的东西。

  3. String title = "Google"; - 这里变量的名称应该是 Expected_title ,这与 String 类似Actual_title;

  4. Actual_title.contentEquals(title) - 您已使用 if (Actual_title.contentEquals(title)),因为您观察到页面标题仅作为“Google ”。但在大多数情况下,您无法仅通过查看就看到整个页面标题。您必须查看页面源代码才能观察整个页面标题。因此,在您的情况下,您可以使用 if (Actual_title.contains(title)) 而不是 Actual_title.contentEquals(title),这样您的测试用例就不会失败。

  5. 如果您发现代码在加载页面之前尝试定位元素时失败,请添加 implicitlyWait 以加载页面。

driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

  1. 如果您发现您的代码在尝试定位元素时失败,甚至在页面加载后,请添加 explicitWait 以便元素在 DOM 中可见。

关于java - getTitle() 函数在 Selenium Web 驱动程序中返回不正确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43628018/

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