我正在开发一个Web应用程序,它有一个查询表单来提供搜索条件。一旦在表单中填写了查询条件并进行了搜索,就会在搜索表单下方加载一个表格。



现在这个表格不是由通常的 tr 和 td 标签,但由几个脚本标签组成,如 -


 < TABLE>&# XA;< THEAD> ...< / THEAD>
< TBODY>
< SCRIPT>
 var colElm1 = document.createElement(“SPAN”);
 colElm1.innerText =“ABCD”;
 rowElm1.appendChild(colElm1);
< / SCRIPT>
< SCRIPT>
 var colElm1 = document.createElement(“SPAN”);
 colElm1.innerText =“AB_CD123”;
 rowElm1.appendChild(colElm1);
< / SCRIPT> 
 ....
< / TBODY>
< /表>
 代码>


 现在我的问题是,是否有任何方法可以使用selenium获取“ABCD”和“AB_CD123”,而不是在整个源代码中使用正则表达式?

答案 0 :(得分:0)
<强>更新强>
误解了这个问题,我想你想改变<script>
标签的内容。
您可以使用<script>
逐个对所有JavascriptExecutor
代码执行此操作,如下所示:
WebElement scriptTag1 = driver.findElement(By.xpath("//table//tbody/script[1]"));
JavascriptExecutor js = (JavascriptExecutor)driver;
//you can use following line
js.executeScript("arguments[0].setAttribute('value', 'your new value');", scriptTag1);
//or if above line doesn't work then following line
js.executeScript("arguments[0].setAttribute('innerHTML', 'your new value');", scriptTag1);
'您的新价值'应提供
的全部内容<script...</script>
代码
答案 1 :(得分:0)
正如Script标签中的代码所示,它会将SPAN附加到元素&#39; rowElm1&#39;。
rowElm1.appendChild(colElm1);
这个&#39; rowElm1&#39;应该是页面中的一些元素,一旦找到将值赋值给&#39; rowElm1&#39;从整个页面源,您将知道如何从页面中找到它,然后您将看到所有已添加的SPAN文本将显示在&#39; rowElm1&#39;内。
因此,您无需从SCRIPT标签获取SPAN文本,您应该从元素&#39; rowElm1&#39;中获取它们。在页面上。
driver.findElement(locator of 'rowElm1').getText();