簡體   English   中英

通過Java中的動態ID為selenium腳本找到一個值

[英]find a value through a table with dynamic ID in Java for selenium script

下面是頁面的源代碼,我想從下面搜索名稱為“Dropbox”的元素。 該ID是隨機ID,因此無法使用該ID進行搜索。

<div class="main-container">
<div class="navbar-content">
<div class="main-content">
<div id="dnsrp3wdegf881" class="container" style="height: 564px;">
<div class="row">
<div class="row">
<div class="col-md-12" style="padding:0">
<div class="panel panel-default" style="border:none; margin-bottom: 0;">
<div class="panel-body messages">
<div id="records-section" style="display: block; float: left; position: static;" rel="sections">
<ul class="messages-list">
<li id="3nsprserf" class="messages-search thegrey">
<li id="3nsprserfcnf55" class="messages-search thegrey" style="border-bottom:none; padding-top:0; padding-bottom:0">
<li>
<li class="messages-search" style="padding: 10px 0; padding-top:0; padding-bottom:0">
<div id="maintblcnts3cdr3" class="panel-scroll ps-container" style="height: 435px;">
<div id="preloadongo" style="width: 100%; height: 100%; position: absolute; left: 0px; top: 0px; display: none;"></div>
<div id="tblContents_wrapper" class="dataTables_wrapper form-inline" role="grid">
<div class=""></div>
<table id="tblContents" class="table table-hover table-full-width dataTable" aria-describedby="tblContents_info">
<tbody id="table_body" role="alert" aria-live="polite" aria-relevant="all">
<tr id="4FDF448C566E5977" class="odd" style="opacity: 1;">
<tr id="7F5AA7C9566E5977" class="even markrow">
<tr id="3CD258A7566E5977" class="odd">
<tr id="E1DE54EE566E5977" class="even">
<tr id="DCDFD780566E5977" class="odd">
<tr id="1FE7B06E566E5856" class="even">
<tr id="8D10800C566E5856" class="odd">
<tr id="5B1A3BAC566E5977" class="even">
<tr id="2B2A9F30566E5856" class="odd">
<tr id="6A6FDCCD566E5977" class="even">
<tr id="B0EAABBB566E5977" class="odd">
<td class="">
<td id="B0EAABBB566E5977" class="">
<td id="B0EAABBB566E5977" class="main-record">
<b>Dropbox</b>            //Have to search and click on this element
<span>splashdrop</span>
</td>
</tr>
<td>

源代碼

嘗試以下代碼: -

driver.findElement(By.className("main-record")).findElement(By.tagName("b")).click();

要么

試試下面的XPath

//tbody[@id='table_body']/tr[11]/td[3]

或嘗試以下XPath

//tbody[@id='table_body']/tr[11]/td[3]/b

希望它能幫到你:)

您可以按班級搜索

driver.findElement(By.className("main-record")).click();

或者通過css單擊子元素

driver.findElement(By.cssSelector("main-record > b")).click();

如果它是可點擊的,那么它必須有一些支持點擊的標簽,因為你不能直接在html上放任何東西並使其可點擊而不將該文本正確地綁定到控件。
為了您的答案,您的文本在b標簽中,然后找到該標簽的元素並搜索整個數組內部文本。

     List<WebElement> linkElements = driver.findElements(By.tagName("b")); 
        //after that iterate through each and search for your text like  
    ForEach(WebElement element in linkElements )        
       {            
             if(element.getText()=="Dropbox")       
        // Do anything with that element then when this condition gets true
     }

嘗試使用contains文本的xpath:

driver.findElement(By.xpath("//*[contains(text(), 'Dropbox')]"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM