如何在selenium中使用java将webelement转换为字符串?请参考详细信息部分

nxagd54h  于 2023-01-29  发布在  Java
关注(0)|答案(3)|浏览(183)

我为“创建项目”页面创建了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)

请告诉我如何处理这个问题。

wi3ka0sx

wi3ka0sx1#

基本上,您希望反转By以获得其字符串,并且使用xpath
因此更改为返回String而不是WebElement

public static class addProjInfo_container {
    public static String projName_txt(WebDriver driver) {
        By by = By.xpath("//label[text()='Project Name']/following-sibling::input");
        driver.findElement(by);
        return getSelectorAsString(by);

    }

    public static String getSelectorAsString(By by) {
        String str = by.toString();
        return str.substring(str.indexOf(" ") , str.length());
      }
    // and so on for every text field for adding project...
}

希望这能有所帮助

yx2lnoni

yx2lnoni2#

要完成这个任务,这确实是一种复杂的方法。您的ProjName_txt()方法已经找到了元素,因为它返回的就是这个元素,所以您不需要使用waitforElementXpath()来等待它出现。我建议您在编写太多代码之前阅读一些关于OOP和类的文章。

5m1hhzi4

5m1hhzi43#

最好的办法是:

String name = driver.findElementByClassName("classnamesample").getText() ;

只需在xpath的最后一个中添加.getText(),并将其作为String接收。

相关问题