这是我试图找到的一个HTML元素:
<div class="q02Nz _0TPg" data-testid="new-post-button" role="menuitem" tabindex="0">
<svg aria-label="New Post" class="_8-yf5 " fill="#262626" height="24" viewBox="0 0 48 48" width="24">
<path d="M31.8 48H16.2c-6.6 0-9.6-1.6-12.1-4C1.6 41.4 0 38.4 0 31.8V16.2C0 9.6 1.6 6.6 4 4.1 6.6 1.6 9.6 0 16.2 0h15.6c6.6 0 9.6 1.6 12.1 4C46.4 6.6 48 9.6 48 16.2v15.6c0 6.6-1.6 9.6-4 12.1-2.6 2.5-5.6 4.1-12.2 4.1zM16.2 3C10 3 7.8 4.6 6.1 6.2 4.6 7.8 3 10 3 16.2v15.6c0 6.2 1.6 8.4 3.2 10.1 1.6 1.6 3.8 3.1 10 3.1h15.6c6.2 0 8.4-1.6 10.1-3.2 1.6-1.6 3.1-3.8 3.1-10V16.2c0-6.2-1.6-8.4-3.2-10.1C40.2 4.6 38 3 31.8 3H16.2z"></path>
<path d="M36.3 25.5H11.7c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h24.6c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z"></path>
<path d="M24 37.8c-.8 0-1.5-.7-1.5-1.5V11.7c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v24.6c0 .8-.7 1.5-1.5 1.5z"></path>
</svg>
</div>
我通过将鼠标悬停在元素上,右键单击并在Chrome驱动程序窗口中选择复制XPath找到了XPath。这是我的代码行。
ele = driver.FindElement(By.XPath("//*[@id="react-root"]/section/nav[2]/div/div/div[2]/div/div/div[3]/svg"));
Chrome 驱动程序会抛出 NoSuchElementException。如何获取此元素以便单击它?
你可以使用这样的东西:
//*[name()='svg' and @aria-label='New Post']
使用svg,使用"名称",然后从那里开始。
WebElement myLink = driver.findElement(By.XPath("//*[name()='svg' and @aria- label='New Post']"));
Actions builder = new Actions(driver);
builder.click(myLink).build().perform();