python - 从 Python Selenium 选择 AngularJS 应用程序中的下拉列表

标签 python selenium protractor

我想在 Python Selenium 中测试页面,它使用 AngularJS。它包含一个选择选项,我尝试了很多选项来选择它,但都失败了。

<select id="xtzpp001" ng-model="..." ng-options="...." ng-change="changeView()">
  <option value class>select</option>
  <option value="200" selected="selected">Student 1</option>
  <option value="201">Student 2</option>
  <option value="202">Student 3</option>
</select>

正如我所说,我试过了---

driver.find_element_by_xpath('//select[@id="xtzpp001"]/option[contains(text(), "Student 2")]').click()

然后

from selenium.webdriver.support.ui import Select

select = Select(driver.find_element_by_id('xtzpp001'))
for i in select.options:
   .......etc etc

我也使用了显式等待。

我开始知道 pytractor 可以在这种情况下帮助我(虽然没有积极开发),但我找不到任何关于使用 pytractor 选择选项的文档。

还有其他方法可以实现吗?或 pytractor 等价物?

或者我可以使用 Protractor (或任何 javascript 框架)从这个阶段继续在 Javascript 中进行测试,并在 Python 中集成/回调结果吗??

最佳答案

使用 selenium.webdriver.support.ui 中的 Select 类。将选择的网络元素传递给构造函数。使用 selectByVisibleText。引用帖子中@alecxe 的回答 - Selenium - Python - drop-down menu option value

关于python - 从 Python Selenium 选择 AngularJS 应用程序中的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39158148/

相关文章:

python - pycharm ubuntu : ImportError: No module named _clock 上的 Kivy 1.9.1

java - 在 Java 中测试 SOAP Web 服务

angularjs - 使用 Protractor 查找所有可见元素

javascript - 在 Protractor 中循环遍历 promise 的键/值对

python - Python:从单独的线中的点绘制一条垂直线

python - pandas 按多列分组并选择前 n 行

python - pyspark 应用程序的 Ipython-Spark 设置

javascript - Selenium 和异步 JavaScript 调用

html - 将 Selenium HTML 源代码存储到 HTMLDocument 类型的元素中

angularjs - Protractor :类型错误:无法调用未定义的方法 'click'