如何在没有ID或名称的文本框中单击?硒Java

时间:2019-02-22 01:18:46

标签: java selenium

这是我要单击的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();

2 个答案:

答案 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 选择的解决方案。