通过id定位元素
#key是 id="name" 在输入框输入的内容是 “百搭潮流男外套”
element = wd.find_element(By.ID,'kw').send_keys("百搭潮流男外套")
通过name定位元素
#定位name元素,name="key"
element = wd.find_element(By.NAME,'wd').send_keys("百搭潮流男外套")
点击链接
element = wd.find_element(By.LINK_TEXT,"番剧").click()
#click()模拟点击 "番剧"链接名字
#页面带有游字的链接,进行点击
#该浏览器页面这个字只能出现一次,否则只会找第一个带 游 字的链接
#!上面注释为猜测,本人还没有遇到过一个页面有同样名字的两个不同链接
element = wd.find_element(By.PARTIAL_LINK_TEXT,"游").click()
通过xpath进行输入框输入
#xpath找输入框,进行输入
element = wd.find_element(By.XPATH,'//*[@id="nav-searchform"]/div[1]/input').send_keys("黑丝")
很多输入框,找到所指定输入框,进行输入
#很多输入框,找到所指定输入框
element = wd.find_element(By.XPATH,'//input[@autocomplete="off"]').send_keys("黑丝")
对特殊标签进行处理
#对span特殊标签进行定位
#找到标签为span的,内容为图片搜索,获取属性class的值
value = element = wd.find_element(By.XPATH,'//span[text()="按图片搜索"]').get_attribute("class")
print(value) #结果与图片上class的值一样,soutu-hover-tip
鼠标移动
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
# 创建驱动程序
driver = webdriver.Chrome()
# 打开网页
driver.get("http://example.com")
# 下滑到页面底部
driver.find_element_by_tag_name('body').send_keys(Keys.END)
# 或者可以使用JavaScript来下滑到页面底部,这样更有效
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# 针对特定元素进行下滑
element = driver.find_element_by_id("my_element_id")
actions = ActionChains(driver)
actions.move_to_element(element).perform()
# 关闭驱动程序
driver.quit()
这里使用了两种方法来滚动页面。`Keys.END`用于向下键盘按键。`driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")`通过执行JavaScript代码来滚动到页面底部。你也可以针对特定元素使用ActionChains类来执行动作,通过`actions.move_to_element(element).perform()`方法来模拟鼠标移动到指定元素。
滚动条移动到最后
self.driver.execute_script('document.documentElement.scrollTop = 10000;')