Python Selenium如何在iframe中单击元素?

阿迪

我对硒的第一个测试是单击网站上的按钮。我需要单击的第一个按钮是网站弹出窗口中的“是,您可以使用cookie”按钮。但是,即使我添加了一条等待线,硒似乎也找不到该按钮。我也尝试了弹出窗口中的其他按钮,但是我的element_to_be_clickable都找不到它们。该元素位于iframe中,因此我想我必须对其进行更改,但是看来我做错了什么。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC  

driver_path = "D:/Python/learning_webclicker/firefox_driver/geckodriver.exe"
firefox_path = "C:/Program Files/Mozilla Firefox/firefox.exe"
option = webdriver.FirefoxOptions()
option.binary_location = firefox_path
driver = webdriver.Firefox(executable_path=driver_path, options=option)

url = "https://web.de/"
driver.get(url)

WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_xpath("/html/body/div[2]/iframe")))
#I tried to find the "save-all-conditionally"-element with lots of different methods:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "save-all-conditionally"))).click()
#WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, """//*[@id="save-all-conditionally"]"""))).click()
#WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "save-all-conditionally")))
# ...

这引发了错误

selenium.common.exceptions.TimeoutException: Message:

而且,如果我尝试在更改为iframe后直接单击该按钮(或不检查iframe),那么我会

driver.implicitly_wait(10)
element=driver.find_element_by_xpath("""//*[@id="save-all-conditionally"]""")
element.click()
>>> selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="save-all-conditionally"]

我猜想,我并不是真的在iframe中(尽管frame_to_be_available_and_switch_to_it不会返回错误),但是我不确定如何/为什么/为什么。

昆杜克

您要查找的元素在内部nested iframe您需要同时切换两个iframe。

使用以下CSS选择器识别iframe

WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[name='landingpage']"))) 
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[src*='plus.web.de']")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "save-all-conditionally"))).click()

或在下面使用xpath标识iframe。

WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@name='landingpage']"))) 
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[contains(@src,'plus.web.de')]")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "save-all-conditionally"))).click()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Selenium和Python在iframe中单击按钮

来自分类Dev

Python Selenium:如何单击元素

来自分类Dev

如何使用Selenium和Python在iFrame中定位元素

来自分类Dev

selenium.common.exceptions.NoSuchWindowException:消息:使用Selenium和Python单击iframe中的元素没有此类窗口错误

来自分类Dev

Selenium与Python:如何单击前面的元素

来自分类Dev

如何在 Selenium 和 Python 中通过 xpath 选择元素?

来自分类Dev

如何在Selenium Webdriver Python中用鼠标单击元素的第二层?

来自分类Dev

如何在不单击每个元素的情况下获得下拉选项(Selenium和Python)

来自分类Dev

如何使用Selenium在Python上单击iframe按钮?

来自分类Dev

无法在iframe中单击下拉菜单-Selenium Python

来自分类Dev

如何通过Python使用Selenium WebDriver在iframe中定位元素

来自分类Dev

如何使用Selenium和Python单击启用GWT的元素

来自分类Dev

如何使用Selenium和Python单击<svg:image>元素

来自分类Dev

如何使用Selenium Webdriver(Python)随机选择并单击元素?

来自分类Dev

如何在Selenium Python中单击href包含某些字符串的链接?

来自分类Dev

如何在 python/selenium 中切换 iframe 工作?

来自分类Dev

使用Python硒单击iframe元素

来自分类Dev

使用Python硒单击iframe元素

来自分类Dev

如何在硒Python中单击图标

来自分类Dev

Python Selenium如何在单击链接之前等待

来自分类Dev

如何在For Loop(Python Selenium)下单击“搜索”按钮

来自分类Dev

如何在python中使用Selenium执行右键单击?

来自分类Dev

如何在Python硒中找到单击按钮的元素?

来自分类Dev

如何在Python Selenium中按类名称及其文本查找元素

来自分类Dev

如何在python中使用Selenium查找html类中是否存在元素

来自分类Dev

如何在Selenium Web Automation(Python)中遍历Web元素以从HTML标签提取文本?

来自分类Dev

如何在python 3中使用Selenium phantomJS从网页的html源中提取表格元素?

来自分类Dev

如何在Selenium(Python)中查找具有特定类属性的元素?

来自分类Dev

如何在 Python 中使用 Selenium 更改输入元素中的值?

Related 相关文章

  1. 1

    如何使用Selenium和Python在iframe中单击按钮

  2. 2

    Python Selenium:如何单击元素

  3. 3

    如何使用Selenium和Python在iFrame中定位元素

  4. 4

    selenium.common.exceptions.NoSuchWindowException:消息:使用Selenium和Python单击iframe中的元素没有此类窗口错误

  5. 5

    Selenium与Python:如何单击前面的元素

  6. 6

    如何在 Selenium 和 Python 中通过 xpath 选择元素?

  7. 7

    如何在Selenium Webdriver Python中用鼠标单击元素的第二层?

  8. 8

    如何在不单击每个元素的情况下获得下拉选项(Selenium和Python)

  9. 9

    如何使用Selenium在Python上单击iframe按钮?

  10. 10

    无法在iframe中单击下拉菜单-Selenium Python

  11. 11

    如何通过Python使用Selenium WebDriver在iframe中定位元素

  12. 12

    如何使用Selenium和Python单击启用GWT的元素

  13. 13

    如何使用Selenium和Python单击<svg:image>元素

  14. 14

    如何使用Selenium Webdriver(Python)随机选择并单击元素?

  15. 15

    如何在Selenium Python中单击href包含某些字符串的链接?

  16. 16

    如何在 python/selenium 中切换 iframe 工作?

  17. 17

    使用Python硒单击iframe元素

  18. 18

    使用Python硒单击iframe元素

  19. 19

    如何在硒Python中单击图标

  20. 20

    Python Selenium如何在单击链接之前等待

  21. 21

    如何在For Loop(Python Selenium)下单击“搜索”按钮

  22. 22

    如何在python中使用Selenium执行右键单击?

  23. 23

    如何在Python硒中找到单击按钮的元素?

  24. 24

    如何在Python Selenium中按类名称及其文本查找元素

  25. 25

    如何在python中使用Selenium查找html类中是否存在元素

  26. 26

    如何在Selenium Web Automation(Python)中遍历Web元素以从HTML标签提取文本?

  27. 27

    如何在python 3中使用Selenium phantomJS从网页的html源中提取表格元素?

  28. 28

    如何在Selenium(Python)中查找具有特定类属性的元素?

  29. 29

    如何在 Python 中使用 Selenium 更改输入元素中的值?

热门标签

归档