我有一个用于文本区域的 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 选择器定位元素,但它们不起作用。我没有看到名称或标签名称,那么我应该怎么做才能解决此问题?
爪哇代码:
driver.findElement(By.xpath("//*[@id="block-517e9e97-d25b-41b1-8108-463e0137df8c"]")).sendKeys("This is text area");
这是因为在 xpath 中您使用了 " 两次,从而退出了字符串:
而不是:
"//*[@id="block-517e9e97-d25b-41b1-8108-463e0137df8c"]"
尝试使用:
"//*[@id='block-517e9e97-d25b-41b1-8108-463e0137df8c']"
使用 " 作为 xpath,使用 ' 作为 ID 名称
driver.findElement(By.id("block-517e9e97-d25b-41b1-8108-463e0137df8c"((.sendKeys("text"(;
当您检查 Web 元素时,如果您通过 ID 标识元素,请先使用该 ID 并执行操作,因为 id 是唯一的,如果您没有 ID,则仅转到 Xpath