selenium获取嵌套框架按钮并模仿点击

首先是要控制打开的浏览器,如下设置:

打开cmd,在命令行中输入命令:

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"

对于-remote-debugging-port值,可以指定任何打开的端口。

对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。还有,不要忘了在环境变量中PATH里将chrome的路径添加进去。

使用方式:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
print(driver.title)

然后寻找嵌套iframe:

#嵌套的iframe

iframe -----------------------------------id="f1"


    iframe ------------------------------------id="f2"


            iframe -------------------------------------id="f3"

#先找到iframe1(id="f1")
driver.switch_to.frame("f1")
#再找到其下面的iframe2(id="f2")
driver.switch_to.frame("f2")

最后根据按钮就id来点击:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# from selenium.webdriver.remote.webelement import WebElement
# from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
import time

# from pyquery import PyQuery as pq

# html = driver.page_source
# data = str(pq(html))
# print(data)
while (True):
    print("yes")
    chrome_options = Options()
    chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    chrome_driver = "chromedriver.exe"
    driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
    print("yes")
    driver.switch_to.frame("ifram_Content")
    driver.switch_to.frame("recordIframe")
    print("yes")
    # driver.execute_script("document.getElementsByName('__EVENTARGUMENT')[0].setAttribute('type','text')")
    # driver.find_element_by_xpath("//input[@name='__EVENTARGUMENT']").send_key('00:40:00')

    # driver.find_element_by_id("__EVENTTARGET").clear()
    # driver.find_element_by_id("__EVENTTARGET").send_keys("00:30:00")
    # time.sleep(5)

    # driver.find_element_by_id("__EVENTARGUMENT").clear()
    # driver.find_element_by_id("__EVENTARGUMENT").send_keys("00:40:00")

    driver.find_element_by_id("update").click()
    time.sleep(5)
    result = EC.alert_is_present()(driver)
    time.sleep(3)
    if result:
        print(result.text)
        result.accept()
    else:
        print("alert 未弹出!")
    time.sleep(3000)
    # alert = driver.switch_to.alert
    # alert = driver.switch_to.default_content()
    # time.sleep(3)
    # alert.accept()
    # # print(driver.title)
    # time.sleep(3000)

# driver.find_element_by_xpath("//button[@class='btn btn-primary pull-right' and @id='get_likes_button']").click()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值