【问题标题】:How to copy text from a web element division having "CALSS" tag plus "Data-Role" tag in the same division如何从同一部门中具有“CALSS”标签和“Data-Role”标签的 Web 元素部门复制文本
【发布时间】:2021-09-03 17:59:20
【问题描述】:

我正在尝试使用带有 MS Excel 的 Selenium VBA 代码以黄色突出显示的文本(来自 HTML 图像)复制到字符串。但是,它正在崩溃并且没有被复制。但是,如果我要在该部门在网页中不包含“Data-Role”元素的其他网站上使用相同的代码,它就可以工作。我尝试使用 ByName ById ByClass 等所有元素类型,但这些技术似乎都不起作用。请注意,我使用 Selenium 访问 Chrome 浏览器。我正在尝试将黄色突出显示的文本数据存储到字符串“Res”中。非常感谢任何帮助或提示。下面是我尝试使用的示例代码。

Dim Res As String

Dim 成为新的 WebDriver

出错后继续下一步

be.Start "chrome", "" be.Get“我尝试从中提取数据的网站”

Res = be.FindElementByClass("text--1jzYQ大写--tL_HU").Text

[![在此处输入图片描述][2]][2]

【问题讨论】:

    标签: excel vba selenium-webdriver web-scraping selenium-chromedriver


    【解决方案1】:

    如果没有网站地址(如果能够使用它进行测试)或任何错误消息,则无法告诉您崩溃的原因。可能访问仍在解析的动态元素?不知道。

    但是,这些类看起来是动态的,所以在健壮性方面,也许可以尝试使用看起来更稳定的属性 = 值 css 选择器的组合:

    be.FindElementByCss("[data-role=status-bar] [data-role=status-text]").text
    

    【讨论】:

    • 我在上面尝试过,但它不起作用。但是,我注意到这些代码在 iFracme 中。你认为我需要尝试以不同的方式访问它们吗?
    • 是的,这行得通,我使用以下代码切换到 iframe 并且它行得通。感谢大家。 be.SwitchToDefaultContent 是.SwitchToFrame (0)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多