ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

selenium执行js脚本

2021-10-19 21:31:57  阅读:122  来源: 互联网

标签:脚本 execute script selenium self driver js document


直接使用js操作页面,能解决很多click()不失效的问题
页面滚动到底部,顶部
处理富文本,时间控件的输入


js定位元素,滚动


execute_script 执行js
return 可以返回js的返回结果

from time import sleep

from selenium_webui.selenium_js.base import Base


class TestJS(Base):
    def test_js_scroll(self):
        self.driver.get('https://www.baidu.com/')
        self.driver.find_element_by_id('kw').send_keys('selenium测试')
        # self.driver.find_element_by_id('su').click()
        ele = self.driver.execute_script("return document.getElementById('su')")  # 返回元素
        ele.click()
        sleep(3)
        self.driver.execute_script('document.documentElement.scrollTop=10000')
        sleep(3)
        self.driver.find_element_by_xpath('//*[@id="page"]/div/a[10]').click()
        sleep(3)
        # 打印出js的详细信息
        for code in [
            'return document.title', 'return JSON.stringify(performance.timing)'  # 当前页面的标题,当前页面的一些性能数据
        ]:
            print(self.driver.execute_script(code))

js处理时间控件


大部分时间控件都是readonly属性
处理时间控件:
1,取消日期的readonly属性
2,给value赋值
js代码实现,再webdriver对js进行处理


    def test_datetime(self):
        self.driver.get('url')
        self.driver.execute_script("a = document.getElementById('element');a.removeAttribute('readonly')")
        获取元素,去除readonly属性
        self.driver.execute_script("document.getElementById('element').value='2021-20-19")
        执行js,给value赋值

标签:脚本,execute,script,selenium,self,driver,js,document
来源: https://blog.csdn.net/yuzhong_chen/article/details/120854751

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有