【发布时间】: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