WEB 的 UI 用的是 element 的框架;
像这样的情况:
界面:
查看元素:
这个页面有好几个这样的下拉框选择,都是的这个:class="el-select-dropdown__item"
用 xpath 定位不到。
脚本:
orders = driver.find_element_by_xpath('//input[@placeholder="请选择接单人"]')
driver.execute_script("arguments[0].removeAttribute('readonly')",orders)
orders.send_keys("宋青")
driver.find_element_by_class_name("el-form").click()
sleep(2)
这脚本运行没有报错,但是页面的框里不会显示出 宋青
求大神解答。。。。
driver.find_element_by_xpath('//li[contains(text(),"宋青")]').click();
另外,python API 里面没有 select_by_visible_text()?难道只有 JAVA 有 selectByVisibleText()?
感谢大神回复,用你的方法报错了
selenium.common.exceptions.InvalidSelectorException: Message: Given xpath expression "//li[contains(text(),"加急"]" is invalid: SyntaxError: The expression is not a legal expression.
像这种也是下拉框形式的
你这个下拉框并非常规的下拉框,如果常规的方法不行,考虑使用 js 脚本直接执行
now_handle = driver.current_window_handle
driver.find_element_by_xpath('//li[contains(text(),"宋青")]').click()
下拉框你当做一个弹窗这样定位下试试
感谢大神,这个 select 只能用于 html 里的 select 对象
我用 driver.find_element_by_xpath('//span[text()=\"加急\"]').click() 搞定了
试试用 xpath 定位 span 就行了
xpath = “//span[contains(text(),’ 宋青 ‘)]” 或者 xpath = “//span[contains(.,’ 宋青 ‘)]”
我这边提示 element click intercepted: Element ... is not clickable at point (1739, 28);
我把 driver.find_element_by_xpath('//li[contains(text(),"宋青")]').click() 这个里面的"宋青",换成了一个参数 name,而这个 name 从 excel 中读取,就提示上面的错误了
你这个问题,为什么要搞这么复杂,简单一点加个 id 不就解决了。
我试了一下貌似回答用 xpath 的都不管用。