java - 使用 Selenium 选择没有 ID 的下拉值
问题描述
得到下面的HTMLcode下拉:
<select name="PWCMasterPage$PWCWebPartManager$gwpTemplateFr1$TemplateFr1$drpProductType" id="PWCMasterPage_PWCWebPartManager_gwpTemplateFr1_TemplateFr1_drpProductType" tabindex="2" class="PWCDropDownList" profiledatamember="" profileid="TEMPLATE" onblur="this.Holder = GetControlHolder(this);" onchange="this.Holder = GetControlHolder(this);" onfocus="this.Holder = GetControlHolder(this);" data-val-subtype-type="none" controlscollectionname="TemplateFr1_drpProductType" data-configid="TemplateFr1_drpProductType" holdername="TemplateFr1Holder">
<option value=""></option>
<option value="7">Expedited</option>
<option value="8">Premier</option>
<option value="9">Value</option>
</select>
一直在尝试选择下拉值:
Select dropDown = new Select(driver.findElement(By.xpath("//*[@id=\"PWCMasterPage_PWCWebPartManager_gwpTemplateFr1_TemplateFr1_drpProductType\"]")));
dropDown.selectByValue("8");
出现以下错误:
线程“主”org.openqa.selenium.NoSuchElementException 中的异常:找不到具有值的选项:8
Select dropDown = new Select(driver.findElement(By.xpath("//*[@id=\"PWCMasterPage_PWCWebPartManager_gwpTemplateFr1_TemplateFr1_drpProductType\"]")));
dropDown.selectByVisibleText("Expedited");
导致以下错误:
线程“主”org.openqa.selenium.NoSuchElementException 中的异常:无法找到带有文本的元素:加急
也曾尝试与 selectByVisibleText 和 selectByIndex 交替使用,这导致了类似的错误。
解决方案
你在使用野生动物园吗?
如果是这样,则 webdriver 和 safari 存在已知问题。它的长短是使用苹果提供的驱动程序。
这是硒问题:https ://github.com/SeleniumHQ/selenium/issues/3145
如果您查看: https ://webkit.org/blog/6900/webdriver-support-in-safari-10/
他们说:
“Safari 的驱动程序可通过
/usr/bin/safaridriver
可执行文件启动,Selenium 提供的大多数客户端库将自动以这种方式启动驱动程序,无需进一步配置。”
推荐阅读
- git - 无法锁定配置文件../.git/config:Jenkins 构建中的权限被拒绝
- c++ - 在 C++ 上的 csv 文件中搜索名称
- android - 为什么我的应用在启动时显示黑屏?
- html - 如何使用带有 Font Awesome 图标的渐变?
- mysql - 如何与多个连接同时打开连接?
- excel - 在所有工作表中运行宏
- node.js - 如何在 digitalocean 中的同一(单个)液滴中将 mongodb 与 nodejs 连接
- ruby-on-rails - 允许使用 alias_attribute 进行设计登录
- swift - 为什么使用 responseWith 方法?
- python - Adanet 内存不足