Selenium滚动页面:
方法一:适用于页面中元素成功定位,但元素不可见的状况
# 存在多个元素时,可使用以下方法
driver.execute_script('arguments[0].scrollIntoView();', driver.find_elements('id', 'kw')[0])
# 元素为唯一元素时,可使用以下方法
driver.execute_script('arguments[0].scrollIntoView();', driver.find_element('id', 'su'))
Xpath定位兄弟元素:
定位兄弟元素:
# 定位与当前元素同级的之前的元素
//div[@="class"]/preceding-sibling::div[1]
# 定位与当前元素同级的之前的元素
//div[@="class"]/following-sibling::div[1]
# 加入额外定位条件
//div[@="class"]/preceding-sibling::div[1][@class="123"] # 且兄弟div中class元素等于123
//div[@="class"]/preceding-sibling::div[1][contains(text(), "123")] # 且兄弟div中文本内容等于123
//div[@="class"]/preceding-sibling::div[1][not(contains(text(), "123"))] # 且兄弟div中文本内容不包含123
定位兄弟元素下的子孙元素:
# 定位哥哥们的子孙元素
//div[@="class"]/preceding-sibling::div[1]//div[@class="XXX"]
# 定位弟弟们的子孙元素
//div[@="class"]/following-sibling::div[1]//div[@class="XXX"]
Xpath定位中使用逻辑运算符:
# 其中and可替换为or
//li[@class="ant-dropdown-menu-item" and @role="menuitem"]/a[contains(text(),"修改")]
Xpath定位不包含某个字符:
# 不包含某个字符
//div[not(contains(@style,"top: -"))]/ul/li/a[contains(text(),"修改")]
# 不包含id元素
//div[not(@id)]
YX9010_0@的第十篇文章
2022/04/14