如何通过VBScript和Selenium单击html上的元素

时间:2018-08-07 05:54:27

标签: selenium selenium-webdriver xpath vbscript webdriver

我正在使用带有Selenium驱动程序的VbScript连接到Chrome(store.steampowered.com/app/681530/NOISZ/),并想单击“ div队列中的下一步”按钮,它是一个div类,但没有任何反应。我知道我走在正确的轨道上,因为以下几行确实按预期工作:

(在队列中显示文本Next)

msgbox(driver.FindElementsByXPath("//div[@class='next_in_queue_area']/div[@class='btn_next_in_queue btn_next_in_queue_trigger']").Item(1).text)

(滚动到队列中的下一个按钮)

driver.FindElementsByXPath("//div[@class='next_in_queue_area']").Item(1).ScrollIntoView

(但是尝试这些操作无济于事,也没有错误消息)

driver.FindElementsByXPath("//div[@class='queue_actions_ctn']").Item(1).Click
driver.FindElementsByClass("next_in_queue_content").Item(1).Click

在突出显示此代码时,使用Chrome的检查功能,“下一步”按钮将完全突出显示:

<div class="btn_next_in_queue btn_next_in_queue_trigger" data-tooltip-text="Remove this product from your queue and continue to the next item.">
                                    <div class="next_in_queue_content">
                                                                                        <span>Next in Queue<br>
                                                <span class="queue_sub_text">(11 remaining )</span>
                                            </span>
                                                                                </div>
                                </div>

因此,这只是找到要单击的正确div或跨度的问题

1 个答案:

答案 0 :(得分:0)

要单击文本为队列中的下一步的按钮,可以使用以下任一解决方案:

  • FindElementXPath

    driver.FindElementByXPath("//div[@class='btn_next_in_queue btn_next_in_queue_trigger']/div[@class='next_in_queue_content']/span").Click
    
  • FindElementsXPath

    driver.FindElementsByXPath("//div[@class='btn_next_in_queue btn_next_in_queue_trigger']/div[@class='next_in_queue_content']/span").Item(1).Click
    

您也可以使用ExecuteScript()方法,如下所示:

Dim js As IJavaScriptExecutor = TryCast(driver, IJavaScriptExecutor)
js.ExecuteScript("arguments[0].click();", driver.find_element_by_xpath("//span[starts-with(@id, 'button-')][@class='x-btn-inner x-btn-inner-center']"))

Imports OpenQA.Selenium.Support.Extensions
driver.ExecuteJavaScript("arguments[0].click();", driver.find_element_by_xpath("//span[starts-with(@id, 'button-')][@class='x-btn-inner x-btn-inner-center']"))