Python Selenium弹出窗口

2024-09-28 22:23:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我决定做TikTok massfollower,但只能登录

from selenium.webdriver import Firefox
from time import sleep

browser = Firefox()

browser.get('https://www.tiktok.com/foryou?lang=ru')
login = browser.find_element_by_class_name('jsx-3665539393')
login.click()

sleep(10)

login2 = browser.find_element_by_class_name('channel-name-2Dwny')
login2.click()

它进入TikTok网站,然后按下登录按钮,然后出现弹出窗口(我希望这是正确的称呼)。但程序在这个弹出窗口中找不到元素,我想我应该等待弹出窗口加载,但并没有区别


Tags: namefromimportbrowserbyloginsleepelement
1条回答
网友
1楼 · 发布于 2024-09-28 22:23:23

您要查找的元素位于iframe中,您需要先切换到iframe才能访问该元素

诱导WebDriverWait()并等待frame_to_be_available_and_switch_to_it()和下面的css选择器

诱导WebDriverWait()并等待element_to_be_clickable()

browser.get('https://www.tiktok.com/foryou?lang=ru')
#Click on Login
WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"a.jsx-3665539393"))).click()
#Click cookeis button
WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.button-wrapper>button"))).click()

WebDriverWait(browser,10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[src*='tiktok']")))
browser.execute_script("arguments[0].click();",WebDriverWait(browser,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.close-modal-8dfIo"))))

您需要导入以下库

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

相关问题 更多 >