【发布时间】:2017-05-14 08:28:46
【问题描述】:
我对编码还很陌生,如果这是一个愚蠢的问题,请原谅我:
我正在尝试从通过执行 JavaScript 填充的列表中获取数据,这是相关的 HTML 部分:
<a data-popover-ui="524151" data-popover-type="Search" href="javascript:LoadLists('SaveListSearchDetails.aspx?AutoLoad=1&SavedListID=EID77FF7H&SavedListTypeID=Search')" data-original-title="" title=""><span class="grid-result no-break">AVEV HRC FEC Master File</span></a>
点击此超链接后,会出现一个要求确认的对话框
这是我尝试过的:
browser = selenium.webdriver.PhantomJS(executable_path=r"E:\phantomjs-2.1.1-windows\bin\phantomjs.exe")
browser.get('~~link where the javascript is~~')
first_list = browser.execute_script("LoadLists('SaveListSearchDetails.aspx?AutoLoad=1&SavedListID=EID77FF7H&SavedListTypeID=Search')"
browser.get('~~link where the list is~~')
browser.get_screenshot_as_file
browser.save_screenshot('1.jpg')
屏幕截图让我看看它是否快速运行。该列表未更新。我对 java 编码几乎一无所知,所以我完全不确定发生了什么,但我认为这是因为在执行 JavaScript 时,我没有处理出现的对话框。
我想我可以使用 get_element_by_SOMETHING,但我不确定该使用哪个,因为该 HTML 部分中没有 ID,我仍然需要帮助来处理该死的对话框。
谢谢你
PhantomJS 不工作。切换到 Chrome 作为 WebDriver。
t_list = find_element_by_link_text("~~text~~")
t_list.click()
time.sleep(5)
Alert(browser).accept()
【问题讨论】:
标签: javascript python selenium selenium-webdriver phantomjs