需要使用Excel VBA Selenium Basic在Chrome(第二部分)中选择单选按钮的帮助吗

需要使用Excel VBA Selenium Basic在Chrome(第二部分)中选择单选按钮的帮助吗,excel,vba,selenium,xpath,css-selectors,Excel,Vba,Selenium,Xpath,Css Selectors,我再次努力尝试在Excel(2013)VBE中使用Selenium Basic ChromeDriver(V75.0.3770.140)在Chrome(V75.0.3770.100)中选择一个单选按钮。以下是HTML: <div class=radio-wrap> <input id="shipToSelect" type="radio" class="radio" name="soldToShipToselection" value="SH" ng-click="radio

我再次努力尝试在Excel(2013)VBE中使用Selenium Basic ChromeDriver(V75.0.3770.140)在Chrome(V75.0.3770.100)中选择一个单选按钮。以下是HTML:

<div class=radio-wrap>
<input id="shipToSelect" type="radio" class="radio" 
name="soldToShipToselection" value="SH" ng-click="radioClicked($event)">
<label for="shipToSelect" class="radio-label">
<i></i>
<span>Ship-to</span>
</label>
</div>

尝试以下
Xpath
单击单选按钮。使用
Explicit
在与元素交互之前等待

obj.FindElementByXPath("//div[@class='radio-wrap']/input[@id='shipToSelect']").Click
要单击与文本关联的单选按钮,如发送至,您可以使用以下任一选项:

  • css选择器

    driver.FindElementByCss("label[for='shipToSelect']").Click
    
    driver.FindElementByCss("input.radio#shipToSelect[name='soldToShipToselection']").Click
    
  • xpath

    driver.FindElementByXPath("//label[@for='shipToSelect']").Click
    
    driver.FindElementByXPath("//input[@class='radio' and @id='shipToSelect'][@name='soldToShipToselection']").Click
    
注意:由于它是一个已启用的元素,您需要诱导一个服务员,使该元素可单击


更新 作为替代方案,您可以尝试以下任一定位器策略:

  • css选择器

    driver.FindElementByCss("label[for='shipToSelect']").Click
    
    driver.FindElementByCss("input.radio#shipToSelect[name='soldToShipToselection']").Click
    
  • xpath

    driver.FindElementByXPath("//label[@for='shipToSelect']").Click
    
    driver.FindElementByXPath("//input[@class='radio' and @id='shipToSelect'][@name='soldToShipToselection']").Click
    

单选按钮是否可以随时单击?如果没有,则可以等待元素可单击。“VBE”代表“Visual Basic编辑器”,是VBA IDE的名称。语言是“VBA”,又名“Visual Basic for Applications”。谢谢Mathieu,我已经更正了它,并表示歉意。即使在等待Chrome不忙之后,它仍然会抛出一个运行时错误7:在Css=label[for='shipToSelect']中找不到NoSuchElementError元素有没有办法使用cssSelector或xpath来单击此元素?由于它是检查时的实际单选按钮,因此当与wait一起使用时,我的答案中的定位器是否有助于您?运行时错误7:未找到Css=label[for='shipToSelect'的NoSuchElementError元素您需要等待,因为元素是动态元素。在我使用switchtonextwindow之后,提供的解决方案工作正常,非常感谢!这很有效,我必须先切换到ExtWindow,因为前一行打开了一个新的Chrome选项卡。谢谢