Selenium+JQuery定位方法及应用
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
# 打开浏览器并访问页面
driver = webdriver.Chrome()
driver.get('http://demo.guru99.com/V4/')
# 使用jQuery定位元素
# 使用jQuery定位器,需要先注入jQuery库
driver.execute_script("""
var jq = document.createElement('script');
jq.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(jq);
""")
# 等待jQuery库加载完成
jQuery_loaded = "return typeof jQuery !== 'undefined'"
wait = WebDriverWait(driver, 10)
wait.until(lambda driver: driver.execute_script(jQuery_loaded))
# 使用jQuery定位元素
element = driver.execute_script("return jQuery('input[type=text]:first').get(0)")
# 使用Selenium的By.JS_PATH进行定位
element_by_js = driver.find_element(By.JS_PATH, "document.querySelector('input[type=text]:first')")
# 打印元素信息
print(element)
print(element_by_js.get_attribute('outerHTML'))
# 关闭浏览器
driver.quit()
这段代码展示了如何在Selenium中结合使用jQuery来定位元素。首先,它通过注入jQuery库到页面中来使得页面可以使用jQuery。然后,它使用jQuery的语法来定位第一个文本输入框,并打印出相关信息。最后,它展示了如何使用Selenium的By.JS\_PATH通过JavaScript定位同样的元素。
评论已关闭