繁体   English   中英

无法点击按钮 selenium Iframe

[英]Cannot click button selenium Iframe

我正在尝试从该站点获取下一页按钮“https://remoters.io/?s=finance..我已经尝试切换 iframe,我认为这是正确的 iframe..仍然没有运气。我试过找到此按钮带有find_element_by_xpath等。

next_iframe = driver.switch_to_frame('aswift_2')
next = next_iframe.find_element_by_partial_link_text('Next')

任何人都可以看看和帮助。 谢谢。

当我将 go 转到“https://remoters.io/?s=finance”时,我没有看到 iframe。 我可以使用下面的代码进入第二页。 如果您在尝试单击下一步之前编写一些额外的代码以确保模式消失,则可以删除time.sleep(5)

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
import time
driver = webdriver.Chrome(executable_path=r'C:\\Path\\To\\chromedriver.exe')
driver.get("https://remoters.io/?s=finance")

agree = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//button[contains(text(),"AGREE")]')))
agree.click()

next = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//a[contains(text(),"Next")]')))
while "page/2/" not in driver.current_url:
    next.click()

使用代码:

driver = webdriver.Firefox()
driver.get('https://remoters.io/?s=finance')
driver.find_element_by_class_name('next').click()

我可以点击下一页。

解释

为了找出如何 select 一个特定的元素,我在 Firefox 上使用ScrapeMate Beta ,它直接给了我更高级别的课程。 另一种选择是使用inspect element

在此处输入图像描述

现在我们可以看到以下内容:

  1. 它是一个链接,但有多个“a”元素。
  2. 它存储在“页码”class 下。 但是这个也不够具体(可以使用find_elements然后过滤文本输入)
  3. class 名称next ,这是此页面上唯一的 class ,因此我选择了该值。

尝试将完整路径搜索保持在最低限度,它们相对较慢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM