Selenium 检查属性是否包含 java 中字符串的一部分

Jra*_*awr 3 java selenium xpath dom

所以我有一个网页,其中某些元素的 Id 是动态生成的,某些部分会发生变化,某些部分会保持不变,如下所示:

<div id= "xxxdiv" title= 'this title'>
  <p id = "xxxp">
  <table id = "xxxtable" title = 'not derp'>
         <div id = "yyyydiv">
           <table id = "yyytable" title= 'derp'>
             <table id = "yyytable2" title = 'not derp'>
               <table id = "zzztable" title = derp>
Run Code Online (Sandbox Code Playgroud)

我正在尝试在页面上进行一些动态查找,以查找 id 包含已知值的给定元素。例如,我并不总是知道可能存在多少嵌套元素,因此最终生成的数字可能会有所不同。所以我想通过 xpath 找到一个元素,其中 @title = not derp 和 @id 包含 yyy。我怎样才能做到这一点?

Wür*_*paß 7

driver.findElement(By.xpath("//table[@title='not derp' and contains(@id, 'yyy')]"));
Run Code Online (Sandbox Code Playgroud)

将找到与您的搜索条件匹配的第一个元素,这将是<table id = "yyytable2" title = 'not derp'>您的 HTML 片段。