创建与动态、AJAX 驱动的网站交互的脚本时,了解底层页面至关重要结构和事件处理程序。这是有效定位和操作这些网站上的元素的分步指南。
使用 Firebug 或 DOM 检查器等浏览器工具,识别要与之交互的元素的 CSS/jQuery 选择器。这些工具还揭示了附加到每个元素的事件。
确定触发所需操作的事件序列。例如,选择下拉菜单可能涉及鼠标按下事件,而不是单击。
waitForKeyElements 函数用于处理由 JavaScript 动态创建或修改的元素。它允许您指定 CSS 选择器和在元素出现时执行的回调函数。
使用 waitForKeyElements 创建一系列步骤,以正确的顺序模拟用户交互。每个回调函数应在各自的元素上执行操作和/或触发事件。
目标:自动选择鞋码,添加到购物车,并在 Nike.com 运动鞋上结账
实现:
waitForKeyElements( "div.footwear form.add-to-cart-form span.sizeDropdown a.size-dropdown", function(jNode) { triggerMouseEvent(jNode[0], "mousedown"); } ); waitForKeyElements( "ul.selectBox-dropdown-menu li a:contains('10')", function(jNode) { if ($.trim(jNode.text()) === "10") { triggerMouseEvent(jNode[0], "mouseover"); triggerMouseEvent(jNode[0], "mousedown"); triggerMouseEvent(jNode[0], "mouseup"); } } ); waitForKeyElements( "div.footwear form.add-to-cart-form span.sizeDropdown a.selectBox span.selectBox-label:contains('(10)')", function(jNode) { var addToCartButton = $( "div.footwear form.add-to-cart-form div.product-selections div.add-to-cart" ); triggerMouseEvent(addToCartButton[0], "click"); } ); waitForKeyElements( "div.mini-cart div.cart-item-data a.checkout-button:visible", function(jNode) { triggerMouseEvent(jNode[0], "click"); } );
说明:
以上是如何在 AJAX 驱动的网站上有效选择和激活控件?的详细内容。更多信息请关注PHP中文网其他相关文章!