【问题标题】:How can I access an element inside of a Javascript with Selenium?如何使用 Selenium 访问 Javascript 中的元素?
【发布时间】:2021-03-31 15:29:57
【问题描述】:

javascript 文件中有一个元素,因此如果它被执行,一个元素(类)将出现在现场。如何使用 Selenium 在 javascript 文件中找到元素?

<body>
#...
    <script src="../public/vendor.bundle.js"></script>
#...
</body>

这是driver.page_source的输出

当我在 Google Chrome 浏览器中本地检查时,我发现 .js 中有一个元素。虽然我如何使用 Selenium 访问它?

【问题讨论】:

  • 有时我没有得到这一方面的反对意见。我检查了这是否是重复的——这个问题是有根据的和合理的。与其不喜欢(如果太容易的话),不如留下建设性的评论。
  • 使用带有src=... 的脚本标签,您可以让selenium 转到该页面(或者只使用requests 并向其发送GET 请求)。从那里你可以开始解析 javascript 并找到你需要的东西。
  • 请注意为什么您可能会被否决,人们不喜欢收到他们认为简单或简单的问题。现在我们需要了解这个网站上的能力范围很广,所以如果您觉得您的问题可以在快速的谷歌搜索中找到,请尝试解释您如何/为什么发现网上其他所有内容对您的问题没有帮助或不适用.希望对您在 Stack Overflow 上的未来有所帮助
  • @EzrielMag 这是一个&lt;script&gt; 标签来呈现 Javascript 不是这样的元素。想做什么?
  • 您是否在问如何:(1)从问题中显示的&lt;script&gt;标签中提取JS文件的名称;然后(2)访问该JS文件的内容;然后 (3) 提取 HTML 的片段,该片段(以某种方式)包含在该 JS 文件中(或可能被该 JS 文件引用)?您想使用 Selenium 完成所有这些工作吗?

标签: javascript python python-3.x selenium


【解决方案1】:

在 selenium 中可以通过三种方式在 .js 中查找元素

  1. isDisplayed() Selenium 中的 isDisplayed 方法验证某个元素是否存在并显示。如果显示元素,则返回值为真。如果不是,则返回值为 false。

下面的代码验证是否显示了具有 id 属性值 next 的元素。

语法:

boolean eleSelected= driver.findElement(By.xpath("xpath")).isDisplayed();
  1. isSelected() 此方法通常用于菜单中的单选按钮、复选框或选项。它用于确定是否选择了一个元素。如果选择了指定元素,则返回值为真。如果不是,则返回值为 false。

下面的代码验证是否显示了id属性值为PersistentCookie的元素。

语法:

boolean elePresent = driver.findElement(By.xpath("xpath")).isSelected();
  1. isEnabled() 此方法验证是否启用了元素。如果元素被启用,它返回一个真值。如果不是,则返回 false 值。

下面的代码验证是否启用了具有 id 属性值 next 的元素。

语法:

boolean eleEnabled= driver.findElement(By.xpath("xpath")).isEnabled();

【讨论】:

    猜你喜欢
    • 2016-04-05
    • 2016-01-05
    • 1970-01-01
    • 2011-02-14
    • 2010-11-29
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    相关资源
    最近更新 更多