我开发了一个selenium脚本,它在facebook组中进行自动注释。
它工作得相对较好,但如果目标元素在浏览器上不可见,则它不会执行click()
方法。
作为解决方法,我正在使用execute_script("window.scrollTo(x,y";)
方法,但它不是理想的脚本。必须改进的代码如下:
text_box = driver.find_element_by_class_name("UFIAddCommentInput")
try:
driver.execute_script("window.scrollTo(100, 0);")
text_box.click()
except:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
text_box.click()
element = driver.switch_to.active_element
element.send_keys(frase)
element.send_keys(Keys.RETURN)
它首先尝试页面顶部的元素,如果没有执行click()
,它会尝试在底部。
但是,有一种更有效的方法来滚动find_element_by_class_name
方法找到的元素?
答案 0 :(得分:2)
你可以尝试
text_box.location_once_scrolled_into_view
text_box.click()
向右滚动页面到所需元素并单击