单击selenium中的Web表中的动态值

时间:2017-06-06 11:13:53

标签: selenium selenium-webdriver automation

以下是我的表结构:

enter image description here

我想只在值不为空时点击“policyno”列的第一个单元格

我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

由于你没有指定,我不知道你需要什么样的编程语言,但这个想法对所有人都是一样的。我已将C#用于以下代码:

  1. 获取所有政策号码元素。通过xpath获取元素可以很容易地实现这一点。在您的情况下,我希望lblPolicyNumber存在于所有:

    IList allPolicyElems = driver.FindElements(By.Xpath(" .//* [contains(@id,' lblPolicyElements')]"));

    < / LI>
  2. 现在,您有两个选项可以单击您需要的元素。首先,使用列表中的位置单击元素:allPolicyElems[0].Click();(不是最好的方法)或使用LINQ(或Java的lambda表达式)来获取文本元素(也许你有存储在以前某些操作的变量中的文本):allPolicyElems.FirstOrDefault(t => t.Text == "your_text_here").Click();
  3. 这可以通过应用相同的逻辑进一步扩展,以防您需要通过了解同一行中的其他单元格值来获取正确的元素。

答案 1 :(得分:0)

尝试使用此功能。

WebElement elem = driver.findElement(By.xpath("//table/tbody/tr[2]/td[3]/span/a"));

if(!(elem.getText().trim().equals(""))){
    elem.click();
}