enter image description here
Using Python to move the slider that is popped up when visiting the site: .
When the slider is "active" it needs to be moved to the end and the underlying element code is this:
<div id="waf_nc_block" style="display: block;">
<div class="waf-nc-mask"></div>
<div id="WAF_NC_WRAPPER" class="waf-nc-wrapper">
<p class="waf-nc-title">访问验证</p>
<p class="waf-nc-description">为保证您的正常访问,请进行如下验证</p>
<p id="waf-nc-traceid" class="waf-nc-traceid-class">日志ID: ac11000117319689145554401e1a0c</p>
<div id="nocaptcha">
<div id="aliyunCaptcha-window-embed" class="aliyunCaptcha-show"
style="padding:0;border:none;display:block;">
<div id="aliyunCaptcha-sliding-wrapper" class="aliyun-captcha">
<div id="aliyunCaptcha-sliding-body" class="sliding">
<div id="aliyunCaptcha-sliding-left" class="" style="width: 295px;"></div>
<div id="aliyunCaptcha-sliding-slider" class="" style="cursor: grabbing; left: 275px;"></div>
<div id="aliyunCaptcha-sliding-text-box" class="aliyunCaptcha-sliding-text-box"><span
id="aliyunCaptcha-sliding-text"
class="aliyunCaptcha-sliding-text">请按住滑块,拖动到最右边</span></div>
</div>
<span id="aliyunCaptcha-sliding-failTip"></span> <span id="aliyunCaptcha-errorTip"></span></div>
</div>
</div>
</div>
</div>
I did try the below snippets and many variants of ActionChains but all of them result in validation error - whose html snippet looks like below
<div id="waf_nc_block" style="display: block;">
<div class="waf-nc-mask"></div>
<div id="WAF_NC_WRAPPER" class="waf-nc-wrapper">
<p class="waf-nc-title">访问验证</p>
<p class="waf-nc-description">为保证您的正常访问,请进行如下验证</p>
<p id="waf-nc-traceid" class="waf-nc-traceid-class">日志ID: ac11000117320265050193350e6922</p>
<div id="nocaptcha">
<div id="aliyunCaptcha-window-embed" class="aliyunCaptcha-show"
style="padding:0;border:none;display:block;">
<div id="aliyunCaptcha-sliding-wrapper" class="aliyun-captcha" style="background: white;">
<div id="aliyunCaptcha-sliding-body" class="sliding" style="display: none;">
<div id="aliyunCaptcha-sliding-left" class="" style="width: 300px;"></div>
<div id="aliyunCaptcha-sliding-slider" class="ok" style="cursor: grabbing; left: 280px;"></div>
<div id="aliyunCaptcha-sliding-text-box" class="aliyunCaptcha-sliding-text-box"><span
id="aliyunCaptcha-sliding-text" class="verified">验证中...</span></div>
</div>
<span id="aliyunCaptcha-sliding-failTip"> <span id="aliyunCaptcha-sliding-fail-text"
class="aliyunCaptcha-sliding-fail-text aliyun-captcha"> <span
id="aliyunCaptcha-sliding-warning" class="aliyunCaptcha-sliding-warning"></span>
页面停留过长,请刷新页面重试 <br>(error:ac11000117320265050193350e6922) <br> </span> </span> <span
id="aliyunCaptcha-errorTip"></span></div>
</div>
</div>
</div>
</div>
The variants that I tried using selenium's functions are: drag & drop
slider = driver.find_elements(by=By.XPATH, value="//div[@id = 'nocaptcha']//div[@id = 'aliyunCaptcha-sliding-slider']")[0]
ActionChains(driver).drag_and_drop_by_offset(slider, 280, 0).pause(3).perform()
and
ActionChains(driver).move_to_element(slider).click_and_hold().move_by_offset(120, 0).pause(.4).move_by_offset(100, 0).pause(.3).move_by_offset(60, 0).pause(.1).release().perform()
here I am pausing every few units to mimic the human engagement as I needed to cover 280 units to move the slider to the right. But all of them result in validation error prompting me to retry, so I am stuck in this endless retry loop.
Appreciate any help or clues to crack this. Thank you.