问题描述
提示:这里描述项目中遇到的问题:有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException:
# browser.find_element_by_css_selector(".pager-btn pager-next").click()
原因分析:
提示:这里填写问题的分析:1.class属性中间的空格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称,(class属性是比较特殊的一个,除了这个有多个属性外,其它的像name,id是没多个属性的)
解决方案:
提示:这里填写该问题的具体解决方案:
三、class定位
1.既然知道class属性有空格是多个属性了,那定位的时候取其中的一个就行(并且要唯一),也就是说class=“j-inputtext dlemail”,取j-inputtext 和dlemail都是可以的,这样这个class属性在页面上唯一就行
四、class属性不唯一怎么办
1.如果这个class的多个属性都不是唯一的咋办呢,元素不唯一也不用怕,可以用复数定位,把所有的相同元素定位出来,按下标取第几个就行。
六、css定位
1.css来定位class属性的元素前面加个点(.)就行,然后空格变成点(.)就能定位了
2.当然css也可以取class属性的其中一个属性(页面上唯一的)来定位,定位方法是灵活多变的
browser.find_element(By.CSS_SELECTOR, ".pager-next").click()
#定位一组取下标定位
# driver.find_elements_by_class_name("j-inputtext")[0].send_keys("yoyo")
# driver.find_elements_by_class_name("j-inputtext")[1].send_keys("12333")
# 方法三:css定位
# driver.find_element_by_css_selector(".j-inputtext.dlemail").send_keys("yoyo")
# driver.find_element_by_css_selector(".j-inputtext.dlpwd").send_keys("123")