首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将硒元素滚动到视图中

不能将硒元素滚动到视图中
EN

Stack Overflow用户
提问于 2021-01-21 09:51:29
回答 3查看 2.4K关注 0票数 1

我在这里要做的是让这个脚本检查“我已经阅读并同意条款和服务”复选框,如照片中所示,突出显示的是复选框本身的html。

这是我用来定位并单击复选框的代码。

代码语言:javascript
复制
tos_checkbox = browser.find_element_by_xpath("//input[@id='mat-checkbox-1-input']")
tos_checkbox.click()

当我运行这个脚本时,我会得到一个错误返回:

代码语言:javascript
复制
selenium.common.exceptions.ElementNotInteractableException: Message: Element <input id="mat-checkbox-1-input" class="mat-checkbox-input cdk-visually-hidden" type="checkbox"> could not be scrolled into view

对如何修复有什么想法吗?

这是到目前为止的完整脚本的副本,如果有必要的话

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

browser = webdriver.Firefox()
browser.implicitly_wait(5)

browser.get('https://onlinebusiness.icbc.com/webdeas-ui/login;type=driver')

lastname_input = browser.find_element_by_xpath("//input[@id='mat-input-0']")
licensenumber_input = browser.find_element_by_xpath("//input[@id='mat-input-1']")
keyword_input = browser.find_element_by_xpath("//input[@id='mat-input-2']")

lastname_input.send_keys("<lastname>")
licensenumber_input.send_keys("<licensenumber>")
keyword_input.send_keys("<keyword>")

tos_checkbox = browser.find_element_by_xpath("//input[@id='mat-checkbox-1-input']")
tos_checkbox.click()

login_button = browser.find_element_by_xpath("//button[@class='mat-raised-button']")
login_button.click()

sleep(5)

browser.close()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-21 10:04:35

只需单击父元素(带有'./..')一切都会好的:

代码语言:javascript
复制
tos_checkbox = brower.find_element_by_xpath("//input[@id='mat-checkbox-1-input']/./..")
tos_checkbox.click()

打招呼!

票数 4
EN

Stack Overflow用户

发布于 2021-01-21 10:08:31

使用以下方法。

代码语言:javascript
复制
wait = WebDriverWait(browser, 10)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#mat-checkbox-1 > label > div"))).click()

导入

代码语言:javascript
复制
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
票数 0
EN

Stack Overflow用户

发布于 2021-01-21 12:20:47

代码语言:javascript
复制
 JavascriptExecutor js = (JavascriptExecutor) driver;

    //Launch the application        
    driver.get("url here");

    //Find element by link text and store in variable "Element"             
    WebElement Element = driver.findElement(By.xpath(" "));

    //This will scroll the page till the element is found       
    js.executeScript("arguments[0].scrollIntoView();", Element);
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65824885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档