一、问题
我们有时候在使用selenium的时候,会遇到悬停后点击元素的操作,因此需要一个动作链来完成这个功能。
二、解决
从selenium的包中导入actionchains函数,利用xpath找到第一个元素,在利用move_to_element(【第一个元素的xpath】).perform()
再利用find_element_by_xpath(【第二个元素的xpath】)将连个元素作为一个整体,再利用click()进行调用。
1 from selenium.webdriver.common.action_chains import ActionChains
2 article = self.browser.find_element_by_xpath('//*[@id="' + key_word + '"]')
3 ActionChains(self.browser).move_to_element(article).perform()
4 menu = self.browser.find_element_by_xpath('//*[@id="' + key_word + '"]/div/div/div/ul/li[' + str(n) + ']/a')
5 menu.click()
三、注意事项
由于xpath在使用中自动进行定位,所以在选择元素的时候不随意手动点击内容,造成动作链中断无法完成响应的操作。