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