Python - Selenium:滚动分屏 |领英职位界面
Python - Selenium: Scroll divided screen | Linkedin job interface
我想找到下一个问题的解决方案:正如您在图片中看到的那样,有 2 个滚动界面(rails)。我想获得我已经完成的每项工作(用于制作自动化申请流程),但是我一次只能获得 9 个元素,因此屏幕,因此每次我得到当前元素时我都需要向下滚动。 linkedin divided interface
job_titles = driver.find_elements_by_class_name('jobs-search-results__list-item')
for job_title in job_titles:
print(job_title.text.split('\n')[0])
driver.implicitly_wait(random_number)
time.sleep(random_number)
left_rail = driver.find_element_by_css_selector('.jobs-search__left-rail')
driver.implicitly_wait(random_number)
time.sleep(random_number)
left_rail.send_keys(Keys.PAGE_DOWN)
这是我正在使用的代码,它可以工作。我尝试使用 youtube,当我选择 body 或 html 作为标签时,我可以滚动(甚至在屏幕未最大化时在 linkedin 上工作,因为那样屏幕就不会被分割。
但是一旦分开就不行了。我试图抓住每一个可能的元素,但到目前为止没有成功。唯一难以处理的元素是 jobs-search__left-rail class( 见下图。但是,一旦我选择了这个项目,它就不会滚动。
enter image description here
非常感谢!
在我看来,当使用 Chrome 时,需要滚动的左侧元素可以用与整个 window 相同的方式进行控制(同样,当我通过 Safari 打开 LinkedIn 时,页面不会被分割并且window 的主滚动条控制左侧)。
所以在确定了硒元素列表后 - jobs_list
jobs_block= driver.find_element(By.CSS_SELECTOR, '.jobs-search-results__list')
jobs_list= jobs_block.find_elements(By.CSS_SELECTOR, '.jobs-search-results__list-item')
我使用 .execute_script 遍历列表以显示新元素
n = 0
for i in jobs_list:
print("__________")
n+=1
driver.execute_script("arguments[0].scrollIntoView();", jobs_list[n-1])
print(n, " ",i.text)
它对我有用,希望它对您和其他寻求解决方法的人有用。我对这个解决方案只是部分满意,因为它仍然没有涵盖如何滚动屏幕的右侧。
我想找到下一个问题的解决方案:正如您在图片中看到的那样,有 2 个滚动界面(rails)。我想获得我已经完成的每项工作(用于制作自动化申请流程),但是我一次只能获得 9 个元素,因此屏幕,因此每次我得到当前元素时我都需要向下滚动。 linkedin divided interface
job_titles = driver.find_elements_by_class_name('jobs-search-results__list-item')
for job_title in job_titles:
print(job_title.text.split('\n')[0])
driver.implicitly_wait(random_number)
time.sleep(random_number)
left_rail = driver.find_element_by_css_selector('.jobs-search__left-rail')
driver.implicitly_wait(random_number)
time.sleep(random_number)
left_rail.send_keys(Keys.PAGE_DOWN)
这是我正在使用的代码,它可以工作。我尝试使用 youtube,当我选择 body 或 html 作为标签时,我可以滚动(甚至在屏幕未最大化时在 linkedin 上工作,因为那样屏幕就不会被分割。
但是一旦分开就不行了。我试图抓住每一个可能的元素,但到目前为止没有成功。唯一难以处理的元素是 jobs-search__left-rail class( 见下图。但是,一旦我选择了这个项目,它就不会滚动。 enter image description here
非常感谢!
在我看来,当使用 Chrome 时,需要滚动的左侧元素可以用与整个 window 相同的方式进行控制(同样,当我通过 Safari 打开 LinkedIn 时,页面不会被分割并且window 的主滚动条控制左侧)。
所以在确定了硒元素列表后 - jobs_list
jobs_block= driver.find_element(By.CSS_SELECTOR, '.jobs-search-results__list')
jobs_list= jobs_block.find_elements(By.CSS_SELECTOR, '.jobs-search-results__list-item')
我使用 .execute_script 遍历列表以显示新元素
n = 0
for i in jobs_list:
print("__________")
n+=1
driver.execute_script("arguments[0].scrollIntoView();", jobs_list[n-1])
print(n, " ",i.text)
它对我有用,希望它对您和其他寻求解决方法的人有用。我对这个解决方案只是部分满意,因为它仍然没有涵盖如何滚动屏幕的右侧。