Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用SeleniumWebDriver转储整个dom结构_Javascript_Python_Selenium - Fatal编程技术网

Javascript 如何使用SeleniumWebDriver转储整个dom结构

Javascript 如何使用SeleniumWebDriver转储整个dom结构,javascript,python,selenium,Javascript,Python,Selenium,我是selenium和python的新手,在寻找识别自动化所需页面元素的最佳方法时遇到了问题。 我有一个有很多javascript的网页。当我在登录表单中使用firefox的inspect元素作为用户名字段时,我看到一个带有id的输入标记,但当我要求selenium查找该id时,它表示找不到该id。 我想再次检查我在firefox中看到的东西是否与selenium看到的一样,因此我尝试: with open("login.html","w") s f: f.write(driver.pa

我是selenium和python的新手,在寻找识别自动化所需页面元素的最佳方法时遇到了问题。 我有一个有很多javascript的网页。当我在登录表单中使用firefox的inspect元素作为用户名字段时,我看到一个带有id的输入标记,但当我要求selenium查找该id时,它表示找不到该id。 我想再次检查我在firefox中看到的东西是否与selenium看到的一样,因此我尝试:

with open("login.html","w") s f:
    f.write(driver.page_source)
我在生成的文件中看不到任何输入元素

基于另一个stackoverflow问题,我尝试:

DOM=driver.execute_script("return document.documentElement.outerHTML")
with open("login.html","w") as f:
    f.write(DOM)
仍然没有输入元素

是否有更好的方法查看所有dom元素和/或找到适用于selenium脚本的正确xpath/ID?

尝试通过document.body.innerHTM获取所有正文HTML


@yong,你建议在执行脚本之前加上长时间睡眠是正确的答案。现在我可以在我创建的文件中看到整个html源代码

此外,现在我的PageObject代码用于填写登录表单并提交它。我再次睡眠,然后打印页面URL和标题,以确保我已转到下一页

最终代码:

driver = webdriver..Firefox()
driver.set_page_load_time(60)
driver.get(URL)
time.sleep(60)
print("URL: "+driver.current_url)
print("Title: "driver.title)
page=LoginPage(driver)
page.username="username"
page.password="password"
page.signin_button.click()
time.sleep(60)
print("URL: "+driver.current_url)
print("Title: "+driver.title)
driver.quit()

谢谢大家的建议。

检查表单是否位于iframe@anderson,在由driver.page_source.No获得的html中没有iFrame。不在页面源中。检查在浏览器中完全呈现的页面的DOM:右键单击输入字段->检查元素->检查取消存储使用firefox的检查器查看页面,整个DOM中似乎没有iframe。但是,我确实注意到oraclejet视图、模型和模板存在引用,因此我不知道这些引用是如何呈现的,我得到了与之前相同的结果,在那里我看到了很多div,我可以看到对绑定到模板的oracle jet视图的引用,以及给出模板属性的json对象,但是视图/模板没有生成实际的html。您是否尝试在驱动程序之前添加长时间睡眠/等待。执行脚本。。。,只是为了确认这不是由于页面未完成加载。如果您在浏览器中手动打开页面时可以看到,请显示页面的HTML
driver = webdriver..Firefox()
driver.set_page_load_time(60)
driver.get(URL)
time.sleep(60)
print("URL: "+driver.current_url)
print("Title: "driver.title)
page=LoginPage(driver)
page.username="username"
page.password="password"
page.signin_button.click()
time.sleep(60)
print("URL: "+driver.current_url)
print("Title: "+driver.title)
driver.quit()