python-selenium-浏览器操作、元素定位

from selenium import webdriver
from selenium.webdriver.common.by import By

option = webdriver.ChromeOptions()
option.add_experimental_option('detach', True)
driver = webdriver.Chrome(service_log_path="log.txt",executable_path="/Users/.../Downloads/chromedriver",chrome_options=option)
driver.get("http://www.taobao.com")
driver.maximize_window() # 窗口最大化
driver.set_window_size(1000,700) # 设置窗口大小,一般不用
driver.get("http://www.baidu.com")
driver.back() # 上一页
driver.forward() # 下一页
driver.refresh() # 刷新页面

print(driver.title) # 获取页面标题
print(driver.current_url) # 获取网址
print(driver.current_window_handle) # 获取窗口句柄

# id
ele = driver.find_element(By.ID, "kw")
print(ele.get_attribute("name"))

# class
ele = driver.find_element(By.CLASS_NAME, "s_ipt")
print(ele.get_attribute("id"))

# name
ele = driver.find_element(By.NAME, "s_ipt")
print(ele.get_attribute("id"))

# 标签
ele = driver.find_element(By.TAG_NAME, "s_ipt")
print(ele.get_attribute("id"))

# 链接文字--精确匹配
ele = driver.find_element(By.LINK_TEXT, "设置")
print(ele.get_attribute("id"))

# 链接文字--模糊匹配
ele = driver.find_element(By.PARTIAL_LINK_TEXT, "更多")
print(ele.get_attribute("id"))

# xpath
# 绝对定位(/开头 非常依赖于页面顺序和位置)
# 相对定位 (//开头 不依赖页面顺序和位置)
# //标签名[@属性=值] 可附加逻辑运算符
# //input[@name="phone" and @datatype="m"]
# 层级定位 //div[@id="u1"//input[@name="phone"] //div[@id="u1"/input[@name="phone"]
# 函数定位 text() contains(@属性/text(), 值) //a[text()="资料"] //a[contains(text(),"xxx")]
# 轴定位 ancestor祖先 parent父辈 preceding兄弟节点 preceding-sibling 前面的兄弟节点 following后面的节点 following-sibling节点之后的兄弟节点
# /轴名称::节点名称[@属性=值] //div//td/preceding::td
ele = driver.find_element(By.XPATH, "//")
print(ele.get_attribute("id"))

# css
ele = driver.find_element(By.CSS_SELECTOR, "")
print(ele.get_attribute("id"))

driver.quit()
posted @ 2022-04-02 11:59  狒狒桑  阅读(127)  评论(0)    收藏  举报