【问题标题】:Unable to click expand button using selenium web driver in Python无法在 Python 中使用 selenium Web 驱动程序单击展开按钮
【发布时间】:2021-10-15 12:40:02
【问题描述】:

我对编程完全陌生。目前正在尝试使用 Python 上的 selenium Web 驱动程序自动化一些日常任务。我有一个包含多个+展开按钮的网页。下面是代码

不展开:

<div class="expansion container">
    <div class="expansion_base_parent"></div> 
    <div class="expansion expansion_parent"> 
        <button type="button" class="compact-visual-toggle"></button>
    </div>
</div>

有扩展

<div class="expansion_container">
    <div class="expansion_base_parent"></div> 
    <div class="expansion expansion_parent"> 
        <button type="button" class="compact-visual-toggle active"></button> 
    </div>
</div>

我无法使用任何 find_by 方法找到此元素 我的同事说该页面包含 json 这就是为什么无法使用 find_by 定位的原因

有人可以帮忙找到代码并点击展开按钮。

实际页面: 转到https://fortigate.fortidemo.com 用户名演示 密码演示 点击登录只读 稍后在下一个窗口中单击 现在导航到网络>接口那里你可以看到很多展开按钮,这就是我所指的我已经编写了代码到这个页面,但我想在截取页面之前展开

【问题讨论】:

  • 您能否分享该元素的相关 HTML 源代码或 URL?
  • 另外分享您发生错误的代码部分。
  • 对不起,我以某种方式添加了它错过了。无扩展
    带扩展

标签: python-3.x selenium


【解决方案1】:

它不必对 JSON 做任何事情。

看,你在说

<div class="expansion container">
    <div class="expansion_base_parent"></div> 
    <div class="expansion expansion_parent"> 
        <button type="button" class="compact-visual-toggle"></button>
    </div>
</div>

当展开按钮出现时你会看到这个 HTML。

您可以使用以下 css 进行定位:-

button.compact-visual-toggle

或 xpath :

//button[contains(@class, 'compact-visual-toggle')]

由于您提到它们是多个扩展按钮,您可以区分如下:

(//button[contains(@class, 'compact-visual-toggle')])[1]

应该代表第一个,第二个你可以试试:

(//button[contains(@class, 'compact-visual-toggle')])[2]

等等..第三,第四....

在代码中你可以像这样使用它:

driver.find_element_by_xpath("//button[contains(@class, 'compact-visual-toggle')]").click()

driver.find_element_by_xpath("(//button[contains(@class, 'compact-visual-toggle')])[1]").click()

driver.find_element_by_xpath("(//button[contains(@class, 'compact-visual-toggle')])[2]").click()

现在,进入第二部分:

<div class="expansion_container">
    <div class="expansion_base_parent"></div> 
    <div class="expansion expansion_parent"> 
        <button type="button" class="compact-visual-toggle active"></button> 
    </div>
</div>

如果你想解开它,你可以使用下面的 xpath :

//button[contains(@class, 'compact-visual-toggle active')]

并像上面一样使用它。

【讨论】:

  • 您好,感谢您的回复......仍然是同样的问题......它说 selenium.common.exception.NoSuchElementException
  • 我尝试了 css 和 xpath 方法,。 button.compact-visual-toggle //button[contains(@class, 'compact-visual-toggle')]
  • 如果是公开的,你能分享页面 URL 吗?如果没有,您需要将源代码保存到文本文件中,然后使用文件共享网站上传该文本文件(当然免费)。他们会给你一个可共享的链接。那个链接你可以给我。
  • 转到fortigate.fortidemo.com 用户名演示 密码演示 单击登录只读 在下一个窗口中单击稍后 现在导航到网络 > 接口 在那里你可以看到很多展开按钮,这就是我所指的我有编写代码到此页面,但我想在截取页面之前扩展
  • 嗨团队,任何人都有机会查看该页面.....是否值得尝试使用 Selenium webdriver 库.....目前我正在尝试自动化我们的防火墙检查,这对我来说只是一个障碍……有人可以确认是否可以单击展开按钮,。正如我提到的,我对编程非常陌生.....所以期待您的建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
  • 2014-05-30
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 2017-10-21
  • 1970-01-01
相关资源
最近更新 更多