我正在使用带有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或跨度的问题
答案 0 :(得分:0)
要单击文本为队列中的下一步的按钮,可以使用以下任一解决方案:
FindElement
和XPath
:
driver.FindElementByXPath("//div[@class='btn_next_in_queue btn_next_in_queue_trigger']/div[@class='next_in_queue_content']/span").Click
FindElements
和XPath
:
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']"))