我有一个下拉列表,其中html为list
- <ul><li><a></a></li>...
这个下拉列表是可滚动的,我需要Selenium
使用某个<a>
滚动到id
,因为除非它可见,否则我无法点击它。
可能使用JavaScript
但无法弄清楚如何使其发挥作用。
clickable_a_id - id of <a> element which I want to scroll to
self.driver.execute_script(
# 'arguments[0].scrollTop = document.getElementById("{}").offsetTop + 5 '.format(clickable_a_id),
'document.getElementById("{}")[0].scrollIntoView()'.format(clickable_a_id),UL_ELEMENT)
它不起作用。你知道怎么做吗?
答案 0 :(得分:2)
el = driver.find_element_by_xpath("")
webdriver.ActionChains(driver).move_to_element(el).perform()
您可以使用
进一步滚动 driver.execute_script("window.scrollTo(0,20)")
答案 1 :(得分:0)
要使用ID滚动到特定元素,您可以实现JavascriptExecutor
,如下所示:
//Use some delay like wait.until or sleep
WebElement elem = driver.findElement(By.id("clickable_a_id"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", elem);
//Use some delay like wait.until or sleep
PS。 您可能(或不)需要使用某种延迟来查看Id元素。
首先,请尝试不使用延迟。