在id中查找文本然后在相同的id中查找类

时间:2015-11-04 10:03:12

标签: java html selenium if-statement

下面的代码询问用户输入(年份),并且我想使用相同的输入来首先检查div class中的用户输入的文本(例如2014)是否在该特定{ {1}}如果是,请在同一个div id中找到PagePostsSectionPaglet以对其他小部件执行操作?

div class="_5sem"

enter image description here

2 个答案:

答案 0 :(得分:1)

你可以创建一个寻找ids开始的xpath - 使用像"//*[starts-with(@id, 'PagePostsSectionPagelet')]"那样的常数部分。然后你可以通过这个xpath找到列表webelement中的所有div和排序。最后,你可以迭代列表,如果有一个文本“2014”,那么你可以点击或任何你想要的。请参阅以下代码:

List <WebElement> PagePostsSectionPagelet = driver.findElements(By.xpath("//*[starts-with(@id, 'PagePostsSectionPagelet')]"));

for (WebElement elm : PagePostsSectionPagelet){
        System.out.println(elm.findElement(By.cssSelector(".clearfix > span")).text)    
    }
}

答案 1 :(得分:0)

你可以试试XPATH之类的东西 - 如果它存在,它将返回webelement,否则None

//div[@id='PagePostsSectionPagelet']//span[text()='2014']/preceding::div[2]/following-sibling::div[1]//div[@class='_5sem']

Selenium表达式 -

driver.findElements(By.xpath("//div[@id='PagePostsSectionPagelet']//span[text()='2014']/preceding::div[2]/following-sibling::div[1]//div[@class='_5sem']"))