gpt4 book ai didi

node.js - 如何通过 Selenium 根据 HTML 定位文本为 My Name 的元素

转载 作者:太空宇宙 更新时间:2023-11-03 21:51:57 25 4
gpt4 key购买 nike

我正在尝试在 node.js 中使用 selenium-webdriver 和 mocha 来查找元素。我做得很好,但我对某个特定的 Google 页面有问题,该页面的 HTML 格式很差(许多标签未关闭)。 Selenium 不喜欢这样。这是标准的 Google 点击您的个人资料登录页面。这是一个 HTML 示例。如何等待页面加载我的名字并点击它?唯一似乎关闭的标签是 li。

<div class="vdE7Oc f3GIQ"><p role="presentation" 
class="wpW1cb">My Name<p class="uRhzae" role="heading"
aria-level="2" data-email="myemail@example.com"
>myemail@example.com</div></div></li>

这是我尝试过的事情的列表(以及其他许多事情):

var profile = await driver.wait(until.elementLocated(By.partialLinkText("My Name")));
var profile = await driver.findElement(By.partialLinkText("My"));
var profile = await driver.findElement(By.xpath("//*[contains(., 'My Name')]"));
var profile = await driver.wait(until.elementLocated(By.css("p[email='myemail@example.com']")));
var profile = await driver.wait(until.elementLocated(By.xpath("//*[contains(., 'My Name')]")));
var profile = await driver.wait(until.elementLocated(By.partialLinkText("My")));
var profile = await driver.wait(until.elementLocated(By.xpath("//p[@email='myemail@example.com']")));

最佳答案

根据您共享的 HTML 来查找文本为 myemail@example.com 的元素,您可以使用以下解决方案:

var profile = await driver.wait(until.elementLocated(By.xpath("//div//p[@role='heading' and @data-email='myemail@example.com']")));

关于node.js - 如何通过 Selenium 根据 HTML 定位文本为 My Name 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51585497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com