小编And*_*ndy的帖子

在ruby selenium-webdriver元素find_elements中使用css子选择器

我希望尽可能避免在webdriver中查找元素时使用XPath,但是能够从已经找到的元素中引用子元素,例如

对于以下html:

<div id="myelement">
    <table class="myclass">
       <tbody>
           <tr>
               <td>something</td>
               <td>
                   <table>
                       <tbody>
                           ...
                       </tbody>
                   </table>
               </td>
           </tr>
           <tr>
               ...
           </tr>
       </tbody>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

我有一个css表达式:

driver.find_elements('div#myelement table.myclass> tbody> tr')

我想将其分解为表元素和行,而不必返回表表达式.例如,对于XPath:

table = driver.find_element(:xpath, "//div[@id='myelement']//table[@classname='myclass']")

rows = table.find_elements(:xpath, 'tbody/tr')
Run Code Online (Sandbox Code Playgroud)

我尝试了以下,使用JQuery $('div#myelement table.myclass').find('> tbody> tr')

table = driver.find_element(:css, 'div#myelement table.myclass')

rows = table.find_elements(:css, '> tbody > tr')
Run Code Online (Sandbox Code Playgroud)

这会导致错误`assert_ok':指定了无效或非法的字符串(Selenium :: WebDriver :: Error :: UnknownError)

删除第一个'>'当然有效,但意味着选择了后代tbody,而不仅仅是直接的孩子.

我怎样才能正确使用css?

css ruby selenium webdriver

4
推荐指数
1
解决办法
7004
查看次数

标签 统计

css ×1

ruby ×1

selenium ×1

webdriver ×1