首页 > 解决方案 > 无法在 Selenium 的 textarea 中找到元素

问题描述

我有一个用于文本区域的 html 块,如下所示:

<div id="block-517e9e97-d25b-41b1-8108-463e0137df8c" class="wp-block block-editor-block-list__block has-selected-ui" data-block="517e9e97-d25b-41b1-8108-463e0137df8c" data-type="core/paragraph" tabindex="0" aria-label="Block: Paragraph" role="group" style="" xpath="1">
    <p role="textbox" aria-multiline="true" aria-label="Empty block; start writing or type forward slash to choose a block" style="" class="rich-text block-editor-rich-text__editable wp-block-paragraph" contenteditable="true">
        <span data-rich-text-placeholder="Start writing or type / to choose a block" contenteditable="false">
        </span>
    </p>
</div>

<p role="textbox" aria-multiline="true" aria-label="Empty block; start writing or type forward slash to choose a block" style="" class="rich-text block-editor-rich-text__editable wp-block-paragraph" xpath="1" contenteditable="true">
    <span data-rich-text-placeholder="Start writing or type / to choose a block" contenteditable="false">
    </span>
</p>

我试图通过使用 id、xpath、css 选择器来定位元素,但它们不起作用。我没有看到名称或标记名,那么我应该怎么做才能解决这个问题?

Java代码:

driver.findElement(By.xpath("//*[@id="block-517e9e97-d25b-41b1-8108-463e0137df8c"]")).sendKeys("This is text area");

标签: javaselenium-chromedriver

解决方案


driver.findElement(By.id("block-517e9e97-d25b-41b1-8108-463e0137df8c")).sendKeys("text");

当您检查 Web 元素时,如果您已通过 id 识别元素,请首先使用该 id 并执行操作,因为 id 是唯一的,如果您没有 id,则只需转到 Xpath


推荐阅读