我正在用Selenium浏览一个JS很重的网页,我需要能够与页面上的dojo组件交互。我正在查看的页面有一个dojo dijit表单,其中有一个组合框,上面有我所在大学的主题名称。我想暴露并迭代单击列表中的每一项,以便在重定向时抓取该主题的课程名称。单击下拉箭头按钮时,将显示列表项。
我自动化的网址:http://sis.rutgers.edu/soc/#subjects?semester=12020&campus=NB,NK,CM&level=U,G
我正在检查下拉按钮的元素并复制XPath。
dropdownButton = driver.find_element_by_xpath('//*[@id="widget_dijit_form_FilteringSelect_0"]/div[1]/input')
运行此命令将生成:
无此类元素异常:消息:没有此元素:找不到元素:{“方法”:“xpath”,“选择器”:“//*[@id=“窗口小部件筛选选择0”]/div[1]/输入”}
编辑:我已经取得了一些进展,在find_by_xpath被调用的时候,元素还没有被渲染。我在程序中添加了一个等待,现在Selenium能够定位并点击下拉按钮。
1条答案
按热度按时间sxissh061#
使用
WebDriverWait
来等待require元素条件。下拉菜单会在页面上的任何操作上消失,这就是为什么要获取选项定位器,你可以执行以下操作之一:你可以在谷歌上搜索定位器的最佳实践,here和here。