当前位置: 首页 > 知识库问答 >
问题:

硒网络驱动程序行为:它挂起还是什么?

司徒光霁
2023-03-14

我正在编写selenium web驱动程序自动化测试用例。有时我在硒中看到这种奇怪的行为。我运行了我的测试(TESTNG),它成功地运行了,我再次运行相同的代码,什么都没有发生。

下面的代码再次出现了同样的问题

我只是在这里写一个方法

 @BeforeTest
public void method(){
driver.get("http://site.staging.snapdeal.com:7003/product/intex-aqua-n2-white/737345766");
driver.manage().window().maximize();
window = driver.getWindowHandle();
driver.switchTo().frame("loginIframe");
driver.findElement(By.id("close-pop")).click();
driver.switchTo().window(window);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("BuyButton-2")));
productName=driver.findElement(By.xpath(".//div[@class='productTitle']//h1")).getText();
System.out.println("Product Name : "+productName);  
driver.findElement(By.id("BuyButton-2")).click();
wait.until(ExpectedConditions.presenceOfElementLocated(By.className("cart-scroll")));
System.out.println("button clicked");
}

一旦这段代码运行良好,在另一次运行时,我的程序在另一个世界中丢失,它不会抛出任何异常,也不会超时。。只有浏览器在最后一行第四个驱动程序之后进入空闲状态。findElement(按id(“BuyButton-2”))。单击();

单击此按钮后,将执行所需操作(打开购物车),然后浏览器仍处于活动状态。我在控制台上没有看到“点击按钮”输出

我有司机。退出();调用我的@Aftertest方法。

但是驱动程序既没有退出,也没有抛出任何异常,控制台上也没有任何异常。

我的代码有问题吗?

共有2个答案

韦正业
2023-03-14

我在我的框架中也遇到了类似的问题,但在调查根本原因时,我发现罪魁祸首是一个基于java脚本的等待方法。所以我替换了那个方法,它对我有效。但您的代码没有这种基于java脚本的等待方法。

我觉得硒等待条件有问题,在你的情况下,执行卡在wait.until(ExectedConditions.presenceOfElementLocing(By.className("cart-scroll")));

这意味着它一直在等待预期的结果,并且毫无例外地从不超时。

请看这里:https://code.google.com/p/selenium/issues/detail?id=6955

由于javascript等待条件,Selenium webdriver执行受阻

宣意致
2023-03-14

对我来说,它看起来可能与. SwitchTo(). frame调用有关。显然,您一次打开了多个窗口。如果您的焦点不在正确窗口中的正确框架上,那么您将得到您正在描述的那种行为。为了确保我有正确的驱动程序上下文,我要做的一件事是执行JavascriptExector调用,使正确的窗口聚焦(但显然这对框架没有帮助)。

你需要把这一切整理好,因为这里没有足够的信息。如果你能把一个完全可以工作的GitHub示例放在一起,我可以加载并排除故障,那么我们可以提供更多帮助。

我建议针对名为“互联网”的GitHub项目编写示例代码,这样我们就可以更好地回答您的问题。

 类似资料:
  • 我查了一下,我怎么能默默地运行硒:在这里找到了下一个伟大的答案 我正在尝试让selenium正常运行,直到一些操作完成,然后在后台运行它。 有可能吗? 高级Oz中的thanx

  • 正在研究尝试理解显式等待的方法。 所以单选按钮被点击后,输入形式发生了变化,所以我把给它一个时间元素出现,否则会出错“元素不可见......”。所以我认为现在是理解显式等待的好时机,因为我需要等到元素出现。 但出现错误“Selenium::WebDriver::error::ElementNotVisibleError:Element当前不可见,因此可能无法与之交互”。为什么这段代码不等到元素出现

  • 我的目标是使用硒为Python自动在线账单支付。 使用以下代码使用 Web 驱动程序登录成功: 登录后,一个新的页面加载,我的下一步是点击一个链接。代码: 什么也没发生。没有导航到该法案 但仍然没有。我还应该尝试其他什么? 错误: Traceback(最近调用的最后一次):File"/home/队长/. PyCharmEdu30/config/划痕/scratch_1.py",第12行,在clic

  • 我有一个问题,上传文件到网络系统使用硒驱动程序。所以在我的页面上,我没有任何输入来设置文件路径,而且我在网络上找到的大多数解决方案都不适合我。我必须点击上传文件按钮,然后在窗口对话框中设置文件的路径。我找到了winforms SendKeys类中使用的方法: 它的工作,但只有当测试有完全控制的机器(如果没有-路径已发送到某处不对话)。这就是问题所在,因为我无法完全控制运行测试的机器。你知道不使用S

  • 下面是我为firefox浏览器初始化的selenium web驱动程序。 尽管我给出了隐式等待,但我没有等待元素。它会立即抛出not found异常。如果我放那么它工作正常,没有任何问题。但是把现在测试用例包含更多线程的任何地方。sleep比实际的测试用例代码低。有人能给我建议正确的方法吗?

  • 我用XPath写了一个单选按钮的代码,但在代码执行过程中没有点击单选按钮。 我的代码是: 请帮助如何按钮选择特定的单选按钮,选择后它移动到另一个单选按钮。 提前感谢。