Python 元素在页面上的不同位置被每个循环隐藏
我正在尝试刮取多个配置文件,并将得到一个selenium.common.exceptions.Element ClickInterceptedException:Message:元素在点(1477947)处不可单击,因为在我尝试运行此脚本的大多数情况下(但不是每次),另一个元素会掩盖它的错误:Python 元素在页面上的不同位置被每个循环隐藏,python,selenium-webdriver,Python,Selenium Webdriver,我正在尝试刮取多个配置文件,并将得到一个selenium.common.exceptions.Element ClickInterceptedException:Message:元素在点(1477947)处不可单击,因为在我尝试运行此脚本的大多数情况下(但不是每次),另一个元素会掩盖它的错误: profile = {} n = 0 for project_url in project_urls: driver.get(project_url) if (len(driver.fin
profile = {}
n = 0
for project_url in project_urls:
driver.get(project_url)
if (len(driver.find_elements_by_css_selector(".others-popup")) > 0):
driver.find_element_by_css_selector(".others-popup").click()
else:
continue
# GET ALL WHO SUBMITTED A PROPOSAL
profile_links = driver.find_elements_by_class_name("pMemberLink")
# driver.switchTo().frame(driver.findElement(By.name("bidders-container")));
links = []
for link in profile_links:
link = link.get_attribute('href')
links.append(link)
for profile_link in links:
# driver.get('https://www.peopleperhour.com/freelancer/technology-programming/mersad-husic-mobile-developer-yvnjxvn')
driver.get(profile_link)
profile["project"] = project_url
name = driver.find_element_by_css_selector('.details > h1').text
name = name.split('\n')[0]
profile["name"] = name
job_title = driver.find_element_by_css_selector('.member-job').text
profile["job_title"] = job_title
web_elements = driver.find_elements_by_css_selector('div.col-md-12 > div > div > a')
driver.implicitly_wait(30)
elements = [element.text for element in web_elements]
if (len(driver.find_elements_by_css_selector('div.col-md-12 > div > div > a > span')) > 0):
driver.find_element_by_xpath("//a[contains(@class, 'js-show-more-tags')]").is_enabled()
# driver.find_elements_by_css_selector('div.col-md-12 > div > div > a > span').is_enabled()
driver.execute_script("window.scrollTo(516,952);")
driver.implicitly_wait(50)
web_elements[-1].click()
# driver.execute_script("arguments[0].scrollIntoView();", web_elements[-1])
# driver.implicitly_wait(30)
# web_elements[-1].click()
driver.implicitly_wait(30)
# sel = Selector(text=driver.page_source)
# web_elements = sel.css('div.col-md-12 > div > div > a')
# print(web_elements)
# sleep(3)
# WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".js-more-tags > a")))
# # ActionChains(driver).move_to_element(element[-1]).click().perform()
# url = web_elements[-1].get_attribute('href')
# driver.get(url)
# WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='feed-load-more-button'][@ng-click=\"ctrl.loadMoreFeedItems()\"]"))).click()
# web_elements = driver.find_elements_by_css_selector('div.col-md-12 > div > div > a')
additional_elements = driver.find_elements(By.CSS_SELECTOR, "a[href*='hire']")
# additional_elements = driver.find_elements_by_xpath("//a[contains(@class, 'tag-item')]")
for element in additional_elements:
print(element.text)
print(len(additional_elements))
# other_effort = driver.find_element(By.XPATH, '/html/body/content/div/div[1]/section/main/div/div/div/div/div[2]/div/aside/div[1]/div/div[1]/div[5]/div[2]/div/div/div/a')
# for effort in other_effort:
# print(effort.text)
# web_elements.extend(additional_elements)
# web_elements = driver.find_elements_by_css_selector('div.col-md-12 > div > div > a')
# https://stackoverflow.com/questions/9156417/valid-json-giving-jsondecodeerror-expecting-delimiter
我尝试过的一切都被评论掉了。我在第一页上用这行代码()修复了这个问题:
driver.execute_script("window.scrollTo(516,952);")
但随后的页面在页面的不同位置抛出相同的错误:
Element is not clickable at point (1477,947)
以下是重现错误的前10个project_URL:
['https://www.peopleperhour.com/freelance-jobs/technology-programming/mobile-app-development/kotlin-recyclerview-2250646', 'https://www.peopleperhour.com/freelance-jobs/technology-programming/website-development/update-to-sample-tracking-system-1851050', 'https://www.peopleperhour.com/freelance-jobs/technology-programming/website-development/wordpress-developer-with-excellent-front-end-skills-3144222', 'https://www.peopleperhour.com/freelance-jobs/video-photography/videography/2d-animated-explainer-video-3187987', 'https://www.peopleperhour.com/freelance-jobs/technology-programming/databases/question-bank-3103578', 'https://www.peopleperhour.com/hourlie/do-bank-reconciliation-convert-bank-statement-edit-modify/698229', 'https://www.peopleperhour.com/freelance-jobs/technology-programming/programming-coding/node-red-xml-json-and-protobuf-3156130', 'https://www.peopleperhour.com/hourlie/do-machine-learning-projects-using-python/703032', 'https://www.peopleperhour.com/freelance-jobs/technology-programming/programming-coding/facebook-for-jobs-intergration-3107545', 'https://www.peopleperhour.com/hourlie/real-time-chat-system-for-website-and-mobile-app/497920?ref=member', 'https://www.peopleperhour.com/freelance-jobs/marketing-branding-sales/public-relations/new-website-with-3-data-bases-2234282']
我已经查看了关于这个主题的所有其他堆栈答案,但没有找到答案。我不认为这是一个等待元素可点击的问题,因为我已经实现了许多隐式等待和EC。元素可点击并得到了相同的结果。任何洞察都将不胜感激!我真的不知道还能尝试什么。谢谢大家!