selenium+python自動化96-執行jquery報:$ is not defined

2022-01-07 從零開始學自動化測試
前言

背景介紹:做wap頁面自動化的時候,把url地址直接輸入到瀏覽器(chrome瀏覽器有手機wap模式)上測試,有個按鈕死活點不到,用wap模式的觸摸事件也無法解決,後來想用jquery去執行點擊。
發現報$ is not defined。

# coding:utf-8# 作者:上海-悠悠import timefrom selenium.webdriver.chrome.options import Optionsfrom selenium import webdriverfrom selenium.webdriver.common.touch_actions import TouchActionsurl="http://xxx"  # url地址省略mobile_emulation = {"deviceName": "iPhone 6"}  # 設置wap模式options=Options()options.add_experimental_option("mobileEmulation", mobile_emulation)driver=webdriver.Chrome()driver.set_window_size(400, 800)driver.get(url)time.sleep(3)el=driver.find_element_by_xpath("//*[text()='去支付']")TouchActions(driver).tap(el).perform()  # 觸摸事件# 執行jquery# jq = "$('.btn').click();"# driver.execute_script(jq)

仔細檢查了語法,發現語法沒問題,在瀏覽器上直接執行,也是能執行成功的。結果各種嘗試jquery不同的點擊方法,最終無法解決。後來換成js語法就搞定了。

遇到問題

1.在執行jquery腳本的時候,報錯:

selenium.common.exceptions.WebDriverException: Message: unknown error: $ is not defined

2.後來嘗試了以下幾種方法都無果:

sleep時間加長一點,讓頁面加載完成

換一種click方法:

$(『.btn』).trigger(『click』)
$(『.btn』).eq(0).trigger(『click』)

js解決

1.後來跟懂jquery的大神溝通了下,由於我訪問的是一個wap頁

2.目前很多H5的頁面,前端開發的框架如果使用的是vue,用$就不行,所以此方法行不通,後來用js就解決了

# coding:utf-8# 作者:上海-悠悠from selenium.webdriver.chrome.options import Optionsfrom selenium import webdriverurl = "https://www.xxx.xxx/"   # url地址省略driver=webdriver.Firefox()driver.set_window_size(400, 800)  # 設置窗口大小driver.get(url)# 執行jsjs = 'document.getElementsByClassName("btn")[0].click();'driver.execute_script(js)

火熱預定!《python3.6接口自動化》5月5號開學

鼓勵小編!

相關焦點

  • 學會Python+Selenium,分分鐘搭建Web自動化框架!
    用python+selenium實現UI自動化測試,要有一些HTML和xpth的基礎,當然python基礎一定是必須要會的。筆者建議花點時間了解下相關基礎知識,不至於後面發懵。一、什麼是selenium?selenium是個強大的工具集。
  • python 自動化,Helium 憑什麼取代 Selenium?
    作者:星安果來源: AirPython1. python自動化:Helium 是什麼?Helium 是一款 Web 端自動化開源框架,全稱是:Selenium-Python-Helium,從名字上就可以看出,Helium 似乎和 Selenium 息息相關確實,Helium 針對 Selenium 進行了封裝,它屏蔽了 Selenium 很多實現細節,提供了更加簡潔直觀的 API,更方便我們進行 Web 端的自動化官方表示,要實現同樣的功能,
  • Selenium2+python自動化55-unittest之裝飾器(@classmethod)
    @是修飾符,classmethod是python裡的類方法 二、執行順序1.用類方法寫幾個簡單case,可以對比這篇:Selenium2+python自動化52-unittest執行順序# coding:utf-8import unittestimport timeclass
  • 用jQuery做自動化測試是怎樣一種感覺
    一、前言元素定位可以說是學自動化測試中必會技能之一,也可以說是通往自動化之路的開門鑰匙。
  • 有一個selenium的高端操作要分享給你
    本文是selenium高級操作(要動手實踐哦)大家好,我是測試君。今天給大家分享一波用jquery改變元素屬性操作,來讓我們開始吧!一、jQuery 語法jQuery 語法是通過選取 HTML 元素,並對選取的元素執行某些操作。
  • python selenium-webdriver 環境搭建(一)
    selenium 雖然過了這麼多年,但是到目前為止依然是比較流行的自動化框架了,還有很多的初學者在學習,所以根據自己的時間將把相關的資料匯總一下
  • Python Selenium智能等待
    前言在使用python selenium進行自動化測試實踐的過程中,經常會遇到元素定位不到,彈出框定位不到等等各種定位不到的情況,在大多數的情況下,無非是以下兩種情況:1、有frame存在,定位前,未switch到對應的frame內2、元素未加載完畢(從界面看已經顯示),但DOM樹還在load狀態或在加載js
  • 小白學 Python 爬蟲(27):自動化測試框架 Selenium 從入門到放棄(上)
    Python 爬蟲(12):urllib 基礎使用(二)小白學 Python 爬蟲(13):urllib 基礎使用(三)小白學 Python 爬蟲(14):urllib 基礎使用(四)小白學 Python 爬蟲(15):urllib 基礎使用(五)小白學 Python 爬蟲(16):urllib 實戰之爬取妹子圖小白學 Python 爬蟲(1
  • selenium自動化利用excel文件實現批量傳值
    selenium自動化測試的時候,經常會用到數據來做批量測試,常用的方式有讀取txt文件,xml文件,csv文件以及excel文件幾種,本文給大家講解一下在selenium 中如何利用excel文件實現批量傳值,python讀取excel主要用到xlrd庫,此庫可在pycharm手動下載此類庫
  • 自動化-Selenium 3-第一個Demo(Python版)
    2、因使用的是Selenium 3,啟動Firefox是需要geckodriver驅動的,否則在執行腳本時報錯:selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
  • Selenium2+python自動化54-unittest生成測試報告(HTMLTestRunner)
    3.下載後手動拖到python安裝文件的Lib目錄下 二、demo解析1.下載Download下的第二個文件test_HTMLTestRunner.py,這個就是官方給的一個測試demo了,從這個文件可以找到該模塊的用法。
  • python爬蟲之selenium抓取淘寶商品信息
    簡介本節採用python爬蟲相關技術獲取淘寶商品信息。採用的技術有selenium、pyquery及urllib.parse等。selenium可以模擬用戶執行的操作,是一個自動化測試工具,我們可以根據自己的需要預先設置selenium按照我們設置好的步驟進行操作,而在爬蟲中我們使用selenium可以解決javascript動態執行代碼的問題,不用費心去解析js如何運行,運行後產生的信息,直接使用selenium模擬實際登陸網頁的操作,獲取我們需要的信息進行分析,成功幫我們避開一系列複雜的通信過程,方便使用者。
  • Selenium自動化測試-6.滑鼠鍵盤操作
    ——————·今天距2020年77天·——————這是ITester軟體測試小棧第59次推文在上一篇:Selenium自動化測試到此為止,已經學完了8種定位方式以及利用Firefox插件協助定位,學會定位,Selenium自動化就成功了一半。But,我們好像只是知道定位,定位後的操作並不多,今天就來系統的了解下滑鼠鍵盤操作。
  • Appium+Python做移動端自動化測試
    第一章 導言  1.1 編制目的  該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。
  • Python+Selenium詳解(超全)
    一、Selenium+Python環境搭建及配置1.1 selenium 介紹selenium 是一個 web 的自動化測試工具,不少學習功能自動化的同學開始首選 selenium ,因為它相比 QTP 有諸多有點:免費
  • python爬蟲之selenium--獲取HTML源碼斷言和URL地址
    python爬蟲之selenium--獲取HTML源碼斷言和URL地址前言在做測試的時候經常會使用selenium獲取網頁url與原始碼,判斷當前執行是否正確
  • python自動化中使用selenium處理滑鼠事件的方法詳解
    我們知道,在使用Python進行自動化處理過程中,常常需要跟滑鼠打交道,如頁面要求滑鼠單擊、懸停等動作,這時候我們怎麼通過selenium提供的驅動來識別並處理滑鼠事件呢?這就是我們今天來探討和梳理的內容。
  • 自動化測試基礎篇:Selenium 框架設計(POM)
    本文介紹selenium的框架設計。自動化測試框架能夠提供很多便利給用戶高效完成一些事情。持續集成,git,svn,ant,maven,jenkins,我們會把這整合到jenkins,達到持續集成,一鍵執行測試腳本。根據以上的特點介紹,我大致用以下圖來描述一下,一個簡單的自動化測試框架,可能包含哪些組成部分。unittest是一個單元測試框架,是Python編程的單元測試框架。
  • Python無頭爬蟲Selenium系列(01):像手工一樣操作瀏覽器
    轉發本文並私信我"python",即可獲得Python資料以及更多系列文章(持續更新的)作為"數據玩家",如果手頭上沒有數據怎麼辦?當然是用代碼讓程序自動化採集數據,但是現在"爬蟲"不是那麼容易,其中最困難的即是突破網站各種反爬機制。
  • Python 題庫自動化面試題
    from selenium.webdriver.common.by import By # 支持的定位器策略集 6、元素定位類型有哪些?")f("python", l, d)f("python", *t)f("python", *l, **d)f("python", q="winning", **d)執行結果:1 (2,) {}1 (2, 3, 'python') {}python ([1, 2, 3], {'a': 7, 'b': 8