我有这个按钮: -
<div class="dsk-col-1-4 card new">
<div class="div_center_div">
<span class="icon icon_plus-black-symbol"></span>
<h2>Create</h2>
</div>
</div>
但我尝试使用classname查找元素: -
driver.findElementByClassName("dsk-col-1-4 card new").click();
但它不起作用。 有什么帮助吗?
答案 0 :(得分:2)
&#34;按类名&#34; locator通常需要传递单个类名:
driver.findElementByClassName("card").click();
如果您想使用多个班级,请使用&#34; CSS选择器&#34;
driver.findElementByCssSelector(".card.new").click();
请注意,dsk-col-1-4
类对于元素定位器来说不是一个很好的选择 - 这看起来非常像一个面向布局的类名,它不仅具有更高的b更改概率,而且还没有带来有关元素及其目的的任何信息。另一方面,card
和new
更适合。
答案 1 :(得分:2)
移动到元素并单击。示例:
new Actions(driver).MoveToElement(yourElement).Click().Perform();
答案 2 :(得分:0)
好的,所以我无法准确理解你要点击哪个元素, 所以基于我的假设,尝试下面的Xpaths:
1)如果您要点击<div class="dsk-col-1-4 card new">
//div[contains(@class,'dsk-col-1-4 card new')]
2)如果您想点击,
//span[contains(@class,'icon icon_plus-black-symbol')]
3)如果您要点击<h2>Create</h2>
,
//h2[text()='Create']
希望这有助于!!
答案 3 :(得分:0)
在您的定位器中,您传递了多个类名,虽然它们都被分配给元素,但findElementByClassName函数仅在它是单个类名时才起作用。我这样做的方法是使用findelement(By.Xpath()),在这种情况下你需要使用
webDriver.findElement(By.xpath("//div[contains(@class,'dsk-col-1-4 card new')]")).click();