在 python 中使用 selenium 时难以从弹出窗口 window 获取元素
Difficulty in getting elements from a pop up window when using selenium in python
我正在尝试从网页中提取作者姓名和他的从属关系(在下面的代码中给出)。在某些情况下,作者的数量可能很大,并且有一个按钮 'Show_all' 我们可以单击它来查看所有作者的姓名。
driver_max_wait_time = 20
driver.get('https://inspirehep.net/literature?sort=mostrecent&size=25&page=1&q=arXiv%3A1311.4916')
# Wait for the element.
WebDriverWait(driver, driver_max_wait_time).until(EC.presence_of_element_located((By.CLASS_NAME, 'result-item-title')))
# click the above element.
element = driver.find_element(By.CLASS_NAME,'result-item-title').click()
# Get the name of authors and their affiliations. May be in format a(U), b(U) etc.
# a, b are authors.
# U is some university.
WebDriverWait(driver, driver_max_wait_time).until(EC.presence_of_element_located((By.CLASS_NAME, '__InlineList__')))
auth_and_aff_text = driver.find_element(By.CLASS_NAME, '__InlineList__').text
if 'Show All' in auth_and_aff_text:
print(' Do somehting special')
WebDriverWait(driver, driver_max_wait_time).until(EC.element_to_be_clickable((By.CLASS_NAME, '__SecondaryButton__'))).click()
#Now we have clicked the show_all button.
从片段中可以看出,show_all
按钮被点击了。谁能告诉我如何从这个小 window/popup.
中提取作者姓名
正如有人所问,我正在进一步编辑问题以包含屏幕截图。
第一个 driver.get
命令即 https://inspirehep.net/literature?sort=mostrecent&size=25&page=1&q=arXiv%3A1311.4916
指向下一页。
enter image description here
现在,我们点击论文标题进入下一页。
enter image description here
现在我们点击 show_all 按钮打开小 window。
enter image description here
这就是我卡住的地方。如何从中提取信息 window/popup?
names=[x.text for x in driver.find_elements(By.XPATH,"//div[@class='ant-modal-body']//a[@data-test-id]")]
如果你想要的话,应该在弹出窗口中获取所有 9 个不带括号的名字。
或带括号的
//div[@class='ant-modal-content']//div[@class='di']
我正在尝试从网页中提取作者姓名和他的从属关系(在下面的代码中给出)。在某些情况下,作者的数量可能很大,并且有一个按钮 'Show_all' 我们可以单击它来查看所有作者的姓名。
driver_max_wait_time = 20
driver.get('https://inspirehep.net/literature?sort=mostrecent&size=25&page=1&q=arXiv%3A1311.4916')
# Wait for the element.
WebDriverWait(driver, driver_max_wait_time).until(EC.presence_of_element_located((By.CLASS_NAME, 'result-item-title')))
# click the above element.
element = driver.find_element(By.CLASS_NAME,'result-item-title').click()
# Get the name of authors and their affiliations. May be in format a(U), b(U) etc.
# a, b are authors.
# U is some university.
WebDriverWait(driver, driver_max_wait_time).until(EC.presence_of_element_located((By.CLASS_NAME, '__InlineList__')))
auth_and_aff_text = driver.find_element(By.CLASS_NAME, '__InlineList__').text
if 'Show All' in auth_and_aff_text:
print(' Do somehting special')
WebDriverWait(driver, driver_max_wait_time).until(EC.element_to_be_clickable((By.CLASS_NAME, '__SecondaryButton__'))).click()
#Now we have clicked the show_all button.
从片段中可以看出,show_all
按钮被点击了。谁能告诉我如何从这个小 window/popup.
正如有人所问,我正在进一步编辑问题以包含屏幕截图。
第一个 driver.get
命令即 https://inspirehep.net/literature?sort=mostrecent&size=25&page=1&q=arXiv%3A1311.4916
指向下一页。
enter image description here
现在,我们点击论文标题进入下一页。 enter image description here
现在我们点击 show_all 按钮打开小 window。 enter image description here
这就是我卡住的地方。如何从中提取信息 window/popup?
names=[x.text for x in driver.find_elements(By.XPATH,"//div[@class='ant-modal-body']//a[@data-test-id]")]
如果你想要的话,应该在弹出窗口中获取所有 9 个不带括号的名字。
或带括号的
//div[@class='ant-modal-content']//div[@class='di']