Java 是否有可能根据“元素”找到元素;p";标记但单击";a「;在里面贴上标签;div";?
我想在屏幕上选择一些模式进行测试。但是有8种不同类型的模式。如果不单击模式的图像,我无法选择任何模式。元素显示如下Java 是否有可能根据“元素”找到元素;p";标记但单击";a「;在里面贴上标签;div";?,java,selenium-webdriver,automated-tests,Java,Selenium Webdriver,Automated Tests,我想在屏幕上选择一些模式进行测试。但是有8种不同类型的模式。如果不单击模式的图像,我无法选择任何模式。元素显示如下 <div class="template-list-board row"> <div class="template-item-list"> <a class="item-image-click" ....> </a> <p class="item-name">Meeting Age
<div class="template-list-board row">
<div class="template-item-list">
<a class="item-image-click" ....> </a>
<p class="item-name">Meeting Agenda</p>
</div>
<div class="template-item-list">
...
</div>
我创建了web元素列表,并根据我想用Java8流选择模式名的值对其进行过滤,这样我就可以用(up div[class='up template list board row']>div>p to div[class='template-list-board row']>div>a)替换过滤后的元素,但这不是一个好主意,我经历过。
那么,有没有办法点击“a”标签
html显示如下
<div class="template-list-board row">
<div class="template-item-list">
<a class="item-image-click" ....> </a>
<p class="item-name">Meeting Agenda</p>
</div>
<div class="template-item-list">
...
</div>
会议议程
...
我不确定我是否正确理解您,但我的解决方案是这样的(使用XPATH而不是css):
1) 为定位器创建字符串:
String locator = "//div[class='template-list-board row']//p[text()='" + hereYourNameVariableAsString + "']/preceding-sibling::a";
2) 然后创建您的元素:
WebElement element = driver.findELement(by.xpath(locator));
这里重要的是,你的定位是动态的,你必须提供你的菜单名或任何名称代表,如“会议议程”。然后,它将找到该菜单和上一个sbling
a
进行单击。我希望我能正确理解这个问题,这会有所帮助 我不确定我是否正确理解您,但我的解决方案是这样的(使用XPATH而不是css):
1) 为定位器创建字符串:
String locator = "//div[class='template-list-board row']//p[text()='" + hereYourNameVariableAsString + "']/preceding-sibling::a";
2) 然后创建您的元素:
WebElement element = driver.findELement(by.xpath(locator));
这里重要的是,你的定位是动态的,你必须提供你的菜单名或任何名称代表,如“会议议程”。然后,它将找到该菜单和上一个sbling
a
进行单击。我希望我能正确理解这个问题,这会有所帮助 我很高兴你这么做了。你是怎么解决的?你好,我为第1页创建了一个自定义方法-在css上创建2个web元素列表(list1->“.template item list>p”,list2->“.template item list>a)2-Use stream for java用于过滤list1以查找索引号(因为在我的例子中,a和p标记对于相关字段具有相同的索引号)3-使用列表2的索引号而不是单击itI我很高兴你这么做了。你是如何解决的?它比我上面提到的更简单。您好,我为第1页创建了一个自定义方法-在css上创建2个web元素列表(列表1->“。模板项列表>p”,列表2->“。模板项列表>a)2-使用java流过滤列表1以查找索引号(因为在我的例子中,a和p标记对于相关字段具有相同的索引号)3-使用列表2的索引号,然后单击它