Selenium+python Automation 96-Execution of the jquery report: $ is not defined

Source: Internet
Author: User

Objective

Background: Do WAP page automation, the URL address directly into the browser (Chrome browser has a mobile phone WAP mode) on the test, there is a button alive and dead Point, with the WAP mode touch event can not be solved, and then want to use jquery to perform the click.
Found reported $ is not defined.

# Coding:utf-8# Shanghai-LeisurelyImport timeFrom Selenium.webdriver.chrome.optionsImport OptionsFrom seleniumImport WebdriverFrom Selenium.webdriver.common.touch_actionsimport touchactionsurl= "http://xxx" # URL address omitted mobile_emulation = { "DeviceName": " IPhone 6 "} # set WAP mode options=options () options.add_experimental_option ( Span class= "hljs-string" > "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 () = ' To pay for '] ") touchactions (Driver). Tap (EL). Perform () # Touch event # Execute Jquery# JQ = "$ ('. Btn ')." Click (); " # driver.execute_script (JQ)          

Careful examination of the grammar, found that the syntax is not a problem, directly on the browser to execute, but also to perform successfully. Results various attempts jquery Different click Method, finally cannot solve. Later changed to JS Grammar is done.

Encounter problems

1. When executing the jquery script, error:

Selenium.common.exceptions.WebDriverException:Message:unknown Error: $ is not defined

2. Some of the following methods have been tried in the future without effect:

    • Sleep time is a bit longer, so the page is loaded to completion

    • A different click Method:

$ ('. Btn '). Trigger (' click ')
$ ('. btn '). EQ (0). Trigger (' click ')

JS Solution

1. I later communicated with the great God who understood jquery, because I was visiting a WAP page

2. There are many H5 pages, the front-end development of the framework if the use of Vue, with $ will not work, so this method does not work, and then use JS to solve the

# coding:utf-8from 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)

Selenium+python Automation 96-Execution of the jquery report: $ is not defined

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.