首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用java将webelement转换为selenium中的字符串?有关更多信息,请参阅详细信息部分

如何使用java将webelement转换为selenium中的字符串?有关更多信息,请参阅详细信息部分
EN

Stack Overflow用户
提问于 2015-10-09 11:45:18
回答 3查看 32.6K关注 0票数 1

我为“创建项目”页面创建了一个POM

代码语言:javascript
复制
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...

我为waitForElement创建了一个带有方法的TestUtility类,如下所示

代码语言:javascript
复制
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准备好开始执行操作。

因此,我使用

代码语言:javascript
复制
TestUtility.waitforElementXpath(driver,10,CreateProject_Page.addProjInfo_container.projName_txt(driver));

但是,它将错误显示为

代码语言:javascript
复制
The method waitforElementXpath(WebDriver, int, String) in the type TestUtility is not applicable for the arguments (WebDriver, int, WebElement)

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

EN

回答 3

Stack Overflow用户

发布于 2015-10-09 18:46:23

基本上,您希望反转By以获取其字符串,并且您正在使用xpath

因此,将其更改为返回字符串而不是WebElement

代码语言:javascript
复制
  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...
}

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2015-10-10 09:40:33

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

票数 0
EN

Stack Overflow用户

发布于 2017-06-14 02:08:03

最好的方法是:

代码语言:javascript
复制
String name = driver.findElementByClassName("classnamesample").getText() ;

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33029579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档