selenium 模拟登陆,不知道是浏览器更新的问题还是网站更新的原因


browser.get('https://www.douban.com/')
browser.maximize_window()

wait = WebDriverWait(browser, 5, 0.5)

browser.switch_to.frame(0)
wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'account-tab-account'))).click()
time.sleep(2)

input_1 = wait.until(EC.presence_of_element_located((By.ID, 'username')))
input_1.send_keys('151xxxxxx@qq.com')
input_2 = wait.until(EC.presence_of_element_located((By.ID, 'password')))
input_2.send_keys('xxxxxxxxx', Keys.ENTER)

time.sleep(1)
iframe = browser.find_element_by_id('tcaptcha_iframe')
browser.switch_to.frame(iframe)

drag_btn = wait.until(EC.presence_of_element_located((By.ID, 'tcaptcha_drag_thumb')))
action = ActionChains(browser)
action.click_and_hold(drag_btn).perform()
action.move_by_offset(207, 0).perform()

action.move_by_offset(207, 0).perform(),拖动的时候报错,Message: element not interactable: [object HTMLDivElement] has no size and location。

如图所示,selenium模拟登陆的时候,滑块的iframe代码没有加载出来。

img

人操作的时候,iframe代码加载出来了。

img

我的谷歌浏览器是 94.0.4606.71,是不是浏览器更新出现的问题,我看b站视频,今年9.30号的视频,讲解里没有出现这个问题。

move_by_offset 放在 actions move to elements 再 call move_by_offset
另外,上面qq资料可以隐藏一下⋯⋯