• Webdriver (python)中调用JS


      1、Webdriver 中调用JS,由于页面中的input是被隐藏起来的,所以必须用JS把隐藏的元素显示出来;

           browser.find_element_by_xpath("//div[@id='surveyItemsWrap']/div/div[2]/button[2]").click()
            time.sleep(5)
            inputs=browser.find_element_by_xpath("//body/input")
            js="var q=document.getElementByClassName('ts_bg alert');q.style.display='block';"
            #  setAttribute("style","display:block     
            print "js"
            browser.execute_script(js)
            browser.find_element_by_xpath("//body/input").send_keys('F:\Img2.jpg')
            print "ok"

    报错:

    Traceback (most recent call last):
      File "E:eclipsePythonCasesrcSurvey_testLogicMore.py", line 85, in test_Surveyor
        browser.execute_script(js)
      File "D:Python27libsite-packagesseleniumwebdriver
    emotewebdriver.py", line 396, in execute_script
        {'script': script, 'args':converted_args})['value']
      File "D:Python27libsite-packagesseleniumwebdriver
    emotewebdriver.py", line 164, in execute
        self.error_handler.check_response(response)
      File "D:Python27libsite-packagesseleniumwebdriver
    emoteerrorhandler.py", line 164, in check_response
        raise exception_class(message, screen, stacktrace)
    WebDriverException: Message: u"unknown error: Object #<HTMLDocument> has no method 'getElementByClassName'
      (Session info: chrome=28.0.1500.72)
      (Driver info: chromedriver=2.3,platform=Windows NT 6.1 SP1 x86_64)" 
    

    PS: JS有待加深学习!

  • 相关阅读:
    svn: E120106: ra_serf: The server sent a truncated HTTP response body.
    HTTP method POST is not supported by this URL解决
    TinyOS文件结构清单解析
    Crush Course 神话学笔记
    Django 入门
    Crush Course 心理学笔记
    网络相关知识汇总链接
    9.21 小程序开发培训讲座
    论文简读之LAIA
    Android studio 的那些坑
  • 原文地址:https://www.cnblogs.com/tyen0921/p/3524602.html
Copyright © 2020-2023  润新知