У меня возникла проблема при нажатии кнопки «Радио» для зарегистрированных проектов на этом сайте. Это не клик с моим кодом в селен вебдрайвер.

import urllib.request
from bs4 import BeautifulSoup
import os
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.keys import Keys
url = 'https://maharerait.mahaonline.gov.in'
chrome_path = r'C:/Users/User/AppData/Local/Programs/Python/Python36/Scripts/chromedriver.exe'

driver = webdriver.Chrome(executable_path=chrome_path)
driver.implicitly_wait(10)
driver.get(url)
soup=BeautifulSoup(driver.page_source, 'lxml')
link =driver.find_element_by_link_text("Search Project Details")
link.click()
driver.find_element_by_id("Promoter").click()
1
P.D 8 Июл 2019 в 10:14

3 ответа

Лучший ответ

Используйте WebDriverWait и java Scripts Executor, чтобы щелкнуть переключатель Registered Project.

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

url = 'https://maharerait.mahaonline.gov.in'
chrome_path = r'C:/Users/User/AppData/Local/Programs/Python/Python36/Scripts/chromedriver.exe'
driver = webdriver.Chrome(executable_path=chrome_path)
driver.get(url)
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='search-pro-details']//a[contains(.,'Search Project Details')]"))).click()
Registered_Project_radio= WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID,"Promoter")))
driver.execute_script("arguments[0].click();",Registered_Project_radio)

Снимок браузера:

enter image description here

0
KunduK 8 Июл 2019 в 08:56

WebDriverWait - явное ожидание - это код, который вы определяете для ожидания возникновения определенного условия прежде чем продолжить дальше в коде.

import urllib.request
from bs4 import BeautifulSoup
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = 'https://maharerait.mahaonline.gov.in'
chrome_path = r'C:/Users/User/AppData/Local/Programs/Python/Python36/Scripts/chromedriver.exe'
driver =  webdriver.Chrome(executable_path=chrome_path)
driver.get(url)

links = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME,\
                "search-pro-details")))

#Click on Search Project Details link
links.find_element_by_link_text("Search Project Details").click()

promoter_radio_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID,\
                "Promoter")))

#select radio button
promoter_radio_button.send_keys(Keys.SPACE)
0
bharatk 8 Июл 2019 в 08:19

Попробуйте использовать это:

driver.get('https://maharerait.mahaonline.gov.in')
link =driver.find_element_by_link_text("Search Project Details")
link.click()
time.sleep(2)
radio_btn = driver.find_element_by_id("Promoter")
radio_btn.click()
time.sleep(5)
driver.close()
0
Nitin 8 Июл 2019 в 08:48