以前我问过如何点击页面上的按钮。它第一次起作用,但我意识到有时起作用有时不起作用,问题是我有多个页面,有时我得到一些页面的数字,但有些页面我什么也得不到。有什么方法可以得到我需要的所有数据吗?这个项目是我在Python入门课程中的期末考试。你知道吗
需要点击的按钮位于页面的右上角,显示文本“Prikaži broj”。 这是我的尝试,但它不是我想要的工作:
condos = [
'https://www.nekretnine.rs/stambeni-objekti/stanovi/vracar-lokacija-juzni-bulevar-adresa-vojvode-hrvoja-beograd/1958955/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/vozdovac-autokomanda-trise-kaclerovica-90m2-trise-kaclerovica/NkvU3_gZyb6/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/vracar-prote-mateje-78m2-id1187/NkwQVDgJqsw/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/palilula-botanicka-basta-bulevar-despota-stefana-60m2-bulevar-despota-stefana/1734451/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/palilula-postanska-stedionica-dalmatinska-94m2-dalmatinska/Nk1bTYWifZj/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/stari-grad-kalemegdan-strahinjica-bana-37m2-strahinjica-bana/NklcRCutVNB/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/palilula-borca-moravske-divizije-73m2-moravske-divizije/207667/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/palilula-visnjicka-banja-slobodana-jovanovica-75m2-slobodana-jovanovica/Nk2nu-zdbzW/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/zvezdara-mirijevo-jovanke-radakovic-61m2-jovanke-radakovic/NkW5Qg22seE/',
'https://www.nekretnine.rs/stambeni-objekti/stanovi/zvezdara-deram-pijaca-duke-dinic-80m2-duke-dinic/Nk26as4b71N/']
condo_agency_home_phones = []
condo_agency_cell_phones = []
options = Options()
options.headless = False
driver = webdriver.Chrome('/Users/Nenad/chromedriver', options=options)
for condo in condos:
driver.get(condo)
try:
element = driver.find_element_by_css_selector('body > div:nth-child(14) > div.row.pt-4 > div.col-lg-4.mb-5 > div.border-box.pt-3.pl-3.pr-3.pb-0.d-none.d-lg-block > div > div.row > div.col-12.col-sm-6.contact-footer > div > div > form:nth-child(2) > button').click()
sleep(randint(3, 5))
element2 = driver.find_element_by_css_selector('body > div:nth-child(14) > div.row.pt-4 > div.col-lg-4.mb-5 > div.border-box.pt-3.pl-3.pr-3.pb-0.d-none.d-lg-block > div > div.row > div.col-12.col-sm-6.contact-footer > div > div > form:nth-child(4) > button').click()
sleep(randint(3, 5))
home_phone = driver.find_element_by_css_selector('body > div:nth-child(14) > div.row.pt-4 > div.col-lg-4.mb-5 > div.border-box.pt-3.pl-3.pr-3.pb-0.d-none.d-lg-block > div > div.row > div.col-12.col-sm-6.contact-footer > div > div > form:nth-child(2) > span')
cell_phone = driver.find_element_by_css_selector('body > div:nth-child(14) > div.row.pt-4 > div.col-lg-4.mb-5 > div.border-box.pt-3.pl-3.pr-3.pb-0.d-none.d-lg-block > div > div.row > div.col-12.col-sm-6.contact-footer > div > div > form:nth-child(4) > span')
condo_agency_home_phones.append(home_phone.text)
condo_agency_cell_phones.append(cell_phone.text)
except:
condo_agency_home_phones.append('NaN')
condo_agency_cell_phones.append('NaN')
我得到的解决方案是:
element = driver.find_element_by_css_selector('button[type="button"]').click()
这个点击按钮有时,我仍然不知道如何提取点击后的数字。 如果有人知道怎么做,请告诉我。你知道吗
您还可以考虑尝试等待clickable
其他进口:
欢迎来到SO。 以下是选项。你知道吗
选项1:使用预期条件(通过这种方式,您可以确保在单击之前找到元素)
选项2:使用Java脚本。(类似于按钮上的单击事件)
使用
WebDriverWait
处理动态元素。但是你需要给我一些时间。睡眠(1) 之后点击按钮,以获得整个电话号码。你知道吗请注意,您需要使用以下导入。你知道吗
相关问题 更多 >
编程相关推荐