Java 如何通过文本识别元素?

Java 如何通过文本识别元素?,java,selenium,xpath,css-selectors,webdriverwait,Java,Selenium,Xpath,Css Selectors,Webdriverwait,我试图用Selenium做一些基本的工作,我试图通过“文本”找到一个元素,因为我所有的元素都是动态生成的,或者它们都有一个共同的属性名和值 我想在下面的div进入“SelTest”,这里是一个街区: <div ng-mouseenter="hover=true" ng-mouseleave="hover=false" class="object workspace" ng-repeat="workspace in workspaces | filter:{'workspace_title

我试图用Selenium做一些基本的工作,我试图通过“文本”找到一个元素,因为我所有的元素都是动态生成的,或者它们都有一个共同的属性名和值

我想在下面的div进入“SelTest”,这里是一个街区:

 <div ng-mouseenter="hover=true" ng-mouseleave="hover=false" class="object workspace" ng-repeat="workspace in workspaces | filter:{'workspace_title':workspaceFilter, 'is_archived':false} | orderBy: 'workspace_title'" ui-sref="main.workspace({workspaceId: workspace.id})" href="#!/workspace/a43d95fa24acbfc4757ba86a4d8dec22">
            <i class="mdi mdi-folder"></i>
            <div class="title">SelTest</div>
            <div class="desc"></div>
            <div class="tools ng-hide" ng-show="hover" style="">
                <button type="button" ng-click="workspace.toggleArchive();$event.stopPropagation();" class="btn btn-default btn-xs">
                    <span>Archive</span>
                </button>
            </div>
        </div>

塞尔特斯特
档案文件
而代码的其余部分具有相同的精确属性名称和值

这是更大的图景:


是否仍要转到SelTest

要定位文本为SelTest的元素,您需要诱导WebDriverWait以实现元素定位()的可见性
并且您可以使用以下任一项:

  • css选择器

    WebElement ele = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.object.workspace[ng-repeat^='workspace in workspaces'][href*='workspace'] div.title")));
    
  • xpath

    WebElement ele = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='object workspace' and starts-with(@ng-repeat, 'workspace in workspaces')][contains(@href, 'workspace')]//div[@class='title' and text()='SelTest']")));
    

您是在尝试提取文本SetTest还是在尝试将文本标识为SetTest的元素?您不能使用content=driver获取元素。通过类名称(“SetTest”)查找元素@DebanjanB,我正在尝试获取文本为SetTest@VSB,否,因为按类名称查找元素是不可接受的argument@Ali没有文本作为SetTest的元素,但有一个文本作为SelTest的元素。我已经相应地更新了你的问题。如果编辑错误的话,请随时回复。我不知道ExpectedConditions是多么好,尽管如此!非常感谢你。你的回答让我意识到我必须再次检查我的密码。非常感谢。