Python Selenium 在 html 页面中嵌套 div 和 iframe

问题描述 投票:0回答:1

我想访问嵌套 html 页面中的按钮:多个 div 和 iframe

一个按钮位于复杂的 html 页面中。如何切换驱动到对应的框架。 driver.find_element(通过...... driver.switch_to.frame(...

我发现必须通过iframe切换到iframe而且还

必须考虑到

...

            <div id="ModuleBarContainer" class="ModuleBarContainer">
                <div id="accordion">
                    <div id="moduleBarSection_HOME" class="group">
                            <h3 class="hnLnk moduleBarTitle" onclick="setTimeout( function(){  }, 10 );">Startpagina
                            </h3>
                        <div><table class="x269" cellpadding="0" cellspacing="0" border="0" summary="" role="presentation"><tbody><tr><td valign="middle">
                                                    <a href="http://link/01.server01#" onclick="javascript:mm( &#39;11337901&#39; )" title="WOD" class="moduleBarNodeLabel" tabindex="-1"><table cellpadding="0" cellspacing="0" border="0" summary="" role="presentation"><tbody><tr><td valign="middle">
                                                                            <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" data-inject-url="http://link/01/stdimages/module/module_work_order.svg" class="moduleBarModuleImage">
<path d="some-path01 z "></path>

WOD 采购订单

我能够找到嵌套元素 moduleBarSection_HOME:

driver_main_bar = driver.find_element(By.CSS_SELECTOR, "#ModuleBarContainer > #accordion > #moduleBarSection_HOME")

我怎样才能做同样的事情 onclick="javascript:mm( '11337901' )

我查了很多文档都没有明确的答案。 https://stackoverflow.com/questions/79085768/how-to-access-the-attributes-in-an-iframe-in-python https://www.selenium.dev/documentation/webdriver/interactions/frames/ https://stackoverflow.com/questions/23223018/selenium-get-all-iframes-in-a-page-even-nested-ones https://stackoverflow.com/questions/51127442/python-selenium-not-able-to-find-the-fourth-nested-iframes https://selenium-python.readthedocs.io/navigating.html

能够解决我的案子,感谢互联网:

  • 在 Chrome 中打开开发者工具:自定义和控制 Google Chrome/更多工具/开发者工具/

  • 找到对应的按钮,右键/复制/复制Xpath 另请参阅如何在 chrome 中查找 xpath

  • driver.execute_script:参见 button-with-javascript-executor

    po = driver.find_element(By.XPATH, "/html/body/div2/div1/div/nav1/ul/li2/ul/div[3]/ul 2/li[3]/a") driver.execute_script("arguments[0].click();", po)

javascript python-3.x selenium-webdriver iframe nested
1个回答
0
投票

能够解决我的案子,感谢互联网:

  • 在 Chrome 中打开开发者工具:自定义和控制 Google Chrome/更多工具/开发者工具/

  • 找到对应的按钮,右键/复制/复制Xpath 另请参阅如何在 chrome 中查找 xpath

  • driver.execute_script:参见 button-with-javascript-executor

    po = driver.find_element(By.XPATH, "/html/body/div2/div1/div/nav1/ul/li2/ul/div[3]/ul 2/li[3]/a") driver.execute_script("arguments[0].click();", po)

© www.soinside.com 2019 - 2024. All rights reserved.