Selenium 请大神解答 element-UI 如何定位下拉框里的内容

arsenalley · May 27, 2019 · Last by 未来的养鹅人 replied at May 30, 2019 · 1479 hits

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)

这脚本运行没有报错,但是页面的框里不会显示出 宋青

求大神解答。。。。

共收到 11 条回复 时间 点赞

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脚本直接执行

是啊,这个下拉框到了外面那层div了
你说的js脚本是直接赋值吗?

arsenalley 回复

我可没让你少打半个括号……😏

槽神 回复

😂 加上了还是说定位不到

arsenalley 回复

试试select_by_visible_text()呢?

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() 搞定了 😍

arsenalley #10 · May 28, 2019 作者
迷惘 回复

感谢🙏了,你这个方法我试了,不行 😕

试试用xpath定位span就行了
xpath = “//span[contains(text(),’宋青‘)]” 或者 xpath = “//span[contains(.,’宋青‘)]”

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up