0

如果我运行文件的 HTML 版本,它会在慢速模式下工作(但在快速模式下会失败)。

我尝试使用 java 的 setspeed 方法,但这不起作用(可能是因为它在以后的版本中被贬值了)。然后我尝试添加手动线程重量时间(在它失败的地方之前),但它也失败了。

无论如何,这是我的java代码:

import com.thoughtworks.selenium.Selenium;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.WebElement;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.thoughtworks.selenium.SeleneseTestBase;

public class tradePagesNotLoad extends SeleneseTestBase{
private Selenium selenium;

@Before
public void setUp() throws Exception {
    WebDriver driver = new FirefoxDriver();
    String baseUrl = "http://www.fsdafdscsa.com/";
    selenium = new WebDriverBackedSelenium(driver, baseUrl);
}

@Test
public void testA9() throws Exception {
    selenium.open("");
    selenium.click("link=Sign In");
    selenium.waitForPageToLoad("30000");
    selenium.type("id=login_username", "fsadfsa");
    selenium.type("id=login_password", "asweqr");
    selenium.click("name=login_button");
    selenium.waitForPageToLoad("30000");
    verifyTrue(selenium.isElementPresent("link=Sign Out"));
    selenium.click("link=Trade");
    selenium.waitForPageToLoad("30000");
    String sellButtonText = selenium.getText("xpath=(//button[@type='button'])[7]");
    System.out.println(sellButtonText);


    assertNotEquals("Loading...", selenium.getEval("storedVars['sellButtonText']"));
    String buyButtonText = selenium.getText("xpath=(//button[@type='button'])[8]");
    System.out.println(buyButtonText);
    assertNotEquals("Loading...", selenium.getEval("storedVars['buyButtonText']"));
    String bidPrice = selenium.getText("id=pretty_bid_price");
    System.out.println(bidPrice);
    assertNotEquals("Loading...", selenium.getEval("storedVars['bidPrice']"));
    String askPrice = selenium.getText("id=pretty_ask_price");
    System.out.println(askPrice);
    assertNotEquals("Loading...", selenium.getEval("storedVars['askPrice']"));
}

@After
public void tearDown() throws Exception {
    selenium.stop();
}
}

代码在第一个 assertNotEquals 处失败。任何建议,将不胜感激。

4

3 回答 3

0

我对 Java 和 Selenium 不太熟悉,但对我来说,您似乎正在尝试访问存储在字符串中的 storedVars 数组中的某些内容:

String sellButtonText = selenium.getText("xpath=(//button[@type='button'])[7]");

然后稍后

assertNotEquals("Loading...", selenium.getEval("storedVars['sellButtonText']"));

selenium.store如果您想使用storedVars数组,您不应该使用类似的东西吗?

于 2013-09-18T12:01:36.157 回答
0

在我的 java 自动化框架中,我使用了 WebDriver$Timeouts.class 接口 - implicitlyWait(long time, TimeUnit unit) 方法。在您的情况下,恰好在初始化对象 Webdriver 的实例之后,粘贴以下代码:

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

此方法指定驱动程序在搜索元素时应等待的时间(如果该元素没有立即出现)。

希望这可以帮助。

于 2014-05-20T10:15:28.210 回答
0

尝试动态等待页面上的某些内容加载。

selenium.wait("id=login_username")

然后也可以尝试其中一个答案中提到的方法。

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

你可以通过增加秒来玩。取决于要加载的页面所需的 sla。ie 某些页面可能需要超过 30 秒才能加载。

于 2020-03-05T09:52:05.473 回答