以下面代码为例
<div class="navi-top-left">
<a class="navi-item_2">新闻</a>
<a class="navi-item_2">地图</a>
<a class="navi-item_2">视频</a>
<a class="navi-item_2">更多</a>
</div>
1-根据文本内容查找元素
contain()
contains 匹配一个属性值中包含的字符串 – 模糊定位通过元素文本内容模糊搜索来定位元素
# 查找新闻的元素
ele_news = driver.find_element(By.XPATH, '//a[contains(text(), "新闻")]')
2-点击操作click(),报错时可替代的方法。
当需要点击操作时最常用和直接的方法是找到元素后.click(),在使用过程中有概率会出现各种的报错。报错的原因千奇百怪,常用代替方法为js点击和回车键。
常规点击操作
driver.find_element(By.XPATH, '//a[contains(text(), "新闻")]').click()
使用js点击操作
#driver.execute_script("arguments[0].click();", 找到的元素)
ele_news = driver.find_element(By.XPATH, '//a[contains(text(), "新闻")]')
driver.execute_script("arguments[0].click();", ele_news) #js点击操作
使用回车键替代点击操作
# 导入Kesy
from selenium.webdriver.common.keys import Keys
ele_news = driver.find_element(By.XPATH, '//a[contains(text(), "新闻")]')
ele_news.send_keys(Keys.ENTER) # 使用回车键替代点击操作