- 情况是这样的:
“GPS”前面的复选框是一个可见的,点击它,右边会相应出现那三个被隐藏的三个复选框。在不勾选GPS的情况下是看不到那三个复选框的。
.
如图所示:
.
图一 选中三个的时候
.
图二 选中两个的时候
.
.
. - 想要实现的效果:
通过python的selenium定位点击GPS前面的那个复选框,以达到选中那三个选项的目的。
.
.
.
.
.
.
.
.
.
.
3.遇到的问题:
通过GPS前面的那个复选款的XPATH定位,点击,但是报错,找不到元素-----selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//[@id="vpopup_1681893240103"]/div[2]/div[1]/div[1]/
.
.
.
.
.
.
.
.
.
.
4.分析可能导致的原因:
(1)一开始怀疑是因为这个页面是在一个新弹出的弹窗上的元素,但可能性不是很大,因为前面也有类似的弹窗是能够点击成功的;
.
(2)接着,发现这个复选框关联了三个复选框,且这三个的input type 是hidden,是最有可能导致不能点击的原因
.
.
.
.
.
.
.
.
.
.
5.尝试解决办法:
(1)尝试用那三个复选框的XPATH来定位,但是报错,元素不可交互-----selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
.
.
(2)也有看到有的回答说可能页面加载时间不够,设置了sleep时间从3s,5s,10s都试了还是报上面相同的错误;
.
(3)网上找到类似的案例说是用JS操作,但是报错,无效的元素状态---selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Failed to execute 'evaluate' on 'Document': The string '//[@id="codeNames"].click();
.
.
.
.
.
.
.
.
.
.
.
6.我的问题:
怎样能点击实现点击,最终只要能选中那三个复选框的内容就可以。
.
.
.
.
.
.
.
.
.
.