这是我要单击的html框,
<div style="min-height: 100px;" class="fr-element fr-view" dir="ltr"
aria-disabled="false" spellcheck="true"
contenteditable="true">
<p><br></p>
</div>
Then trying to reply with this button
<button type="submit" class="button--primary button button--icon button--icon--reply">
<span class="button-text">
Post reply
</span>
</button>
这是我尝试过的
WebElement Post;
Post = driver.findElement(By.xpath("//input[contains(@class,'fr-element fr-view']"));
Post.click();
Post.sendKeys("okay");
driver.findElement(By.xpath("//button//span[text()='Post reply']")).click();
答案 0 :(得分:1)
您的输入元素是div,并且您在contains表达式中缺少右圆括号。
以下方法应该起作用:
Post = driver.findElement(By.xpath("//div[contains(@class,'fr-element fr-view')]"));
您应该在浏览器控制台中测试xpath,以进行完整性检查。在Chrome中,只需右键单击,然后单击检查(Ctrl + Shift + I)。然后转到“元素”标签,并使用xpath / css选择器搜索(ctrl + f)元素。
希望这会有所帮助!
答案 1 :(得分:1)
您可以使用 CSSSelector 单击元素。这是c#的示例
_driver.FindElement(By.CssSelector("a.ng2-smart-page-link.page-link.page-link-next"));
另一项建议,您可以尝试使用 Katalon Recorder
查看详细信息并在
下载https://chrome.google.com/webstore/detail/katalon-recorder/ljdobmomdgdljniojadhoplhkpialdid
它用于根据录制时的操作创建脚本。这样您就可以搜索用于通过 ID , Class 或 CSSSelector 选择的解决方案。