【问题标题】:Select element form a dropdown list using Selenium webdriver Chrome使用 Selenium webdriver Chrome 从下拉列表中选择元素
【发布时间】:2020-08-21 07:57:01
【问题描述】:

我正在尝试使用 vba Selenium 从下拉列表中选择一个值。在 Chrome 中,使用 ChroPath 我获得了相对 Xpath "//option[contains(text(),'Fiyat De')]" 以及绝对 Xpath,但后来我把它们放在我的代码,我在 vba 中收到 NoSuchElement 错误。我也曾尝试使用 XPath Helper 扩展检查 Xpath,但它显示为“Null”。我也试过先点击下拉列表,然后点击我想要的值 (2),但同样的错误。

在我尝试过的 vba 代码选项下方:

'Using XPath
    bot.FindElementByXPath("//select[@id='fileView_ctl01_cmbTur']").Click 'To click on the dropdown list
    bot.FindElementByXPath("//option[contains(text(),'Fiyat De')]").Click 'To click on the desider option
    bot.FindElementByXPath("//iframe[@id='1f219fbb-3e12-406f-bc6a-27f8935c1cb9']").AsSelect.SelectByValue ("2")
'Using also Css    
    bot.FindElementByCss("body.claro:nth-child(2) tr:nth-child(28) td:nth-child(4) div.css-dropdownlist select:nth-child(1) > option:nth-child(2)").Click 
'Using ExecuteScript
    bot.ExecuteScript "document.getElementById('fileView_ctl01_cmbTur').value = '2';"

下面部分 HTML 代码,我想从中选择选项 value="2" style="">Fiyat Değişikliği:

<td width="203" height="20" valign="top" colspan="3" rowspan="2"><div class="css-dropdownlist" style="width:201px;"><select name="fileView$ctl01$cmbTur" id="fileView_ctl01_cmbTur" style="width:223px;text-decoration:none;height:23px;font-weight:normal;font-style:normal;font-size:9pt;font-family:Tahoma;color:#000000;background-color:#FFFFFF;TEXT-ALIGN:left;background-position:183px 4px;">
    <option selected="selected" value="1">Miktar Değişikliği</option>
    <option value="2">Fiyat Değişikliği</option>

</select></div></td>

我尝试了多种组合,使用 Xpath、css,但到目前为止没有任何效果。我是使用此工具的新手,所以这可能是一个简单的错误。感谢大家的贡献。

【问题讨论】:

  • 用基于文本的实际 HTML 来更新问题,而不是手工制作的 HTML。
  • 我刚刚使用代码 sn-p 复制并粘贴了部分实际 HTML(指下拉列表的部分)。

标签: html css selenium selenium-webdriver xpath


【解决方案1】:

你可以试试这个选择器吗?

select[name$='$ctl01$cmbTur] > option[value='2']

【讨论】:

  • 我是使用 selenium 的新手,所以请您指导我是否像这样使用它:bot.FindElementByXPath("//select[name$='$ctl01$cmbTur] > option[value ='2']").点击?那是Xpath吗?谢谢
  • 尝试:bot.findElement(By.cssSelector("select[name$='$ctl01$cmbTur] > option[value='2']"));
  • 感谢您的回复,但没有成功。还是一样的错误。
  • 我首先在我的代码上粘贴了您建议的行,但 Excel 向我显示了一个 sytaxis 错误。然后我修改为: bot.FindElementByCss ("select[name$='$ctl01$cmbTur] > option[value='2']") 新的错误是: Run time error 32: Invalid selectorError Invalid selector: An invalid或指定了非法选择器(会话信息...驱动程序信息...)
  • 感谢您更新代码。您可以使用浏览器访问选择器吗?如果您可以在访问元素之前先使用等待选择器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
相关资源
最近更新 更多