我为“创建项目”页面创建了POM
public static class addProjInfo_container
{
public static WebElement ProjName_txt(WebDriver driver)
{
element=driver.findElement(By.xpath("//label[text()='Project Name']/following-sibling::input"));
return element;
}
// and so on for every text field for adding project...
我创建了一个TestUtility
类,其中包含waitForElement
的方法,如下所示
public final class TestUtility {
private static WebDriver driver;
public static void waitforElementXpath(final WebDriver driver,final int waitTime,final String xp)
{
WebDriverWait wait =new WebDriverWait(driver, waitTime);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(xp)));
}
}
现在,在测试脚本中,我希望避免使用Thread.sleep()
来等待webelement准备好开始执行操作。
因此,我使用
TestUtility.waitforElementXpath(driver,10,CreateProject_Page.addProjInfo_container.projName_txt(driver));
但是,它显示错误为
The method waitforElementXpath(WebDriver, int, String) in the type TestUtility is not applicable for the arguments (WebDriver, int, WebElement)
请告诉我如何处理这个问题。
3条答案
按热度按时间wi3ka0sx1#
基本上,您希望反转By以获得其字符串,并且使用xpath
因此更改为返回String而不是WebElement
希望这能有所帮助
yx2lnoni2#
要完成这个任务,这确实是一种复杂的方法。您的
ProjName_txt()
方法已经找到了元素,因为它返回的就是这个元素,所以您不需要使用waitforElementXpath()
来等待它出现。我建议您在编写太多代码之前阅读一些关于OOP和类的文章。5m1hhzi43#
最好的办法是:
只需在xpath的最后一个中添加
.getText()
,并将其作为String
接收。