会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132441个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 4547楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 4548楼

package com.bjsxt.IO;

import java.io.Serializable;

public class Stu implements Serializable {
    private static final long serialVersionUID = 9040001675273134854L;  //具备可序列化和反序列化的能力
    private String name;
    private int age;
    public static String schoolName;   //static 不会被序列化
    transient String pwd;    //transient 不会被序列化



    public Stu() {
    }

    public Stu(String name, int age, String pwd) {
        this.name = name;
        this.age = age;
        this.pwd = pwd;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", pwd=" + pwd +", schoolName="+schoolName+
                '}';
    }
}


Classes类

package com.bjsxt.IO;

import com.bjsxt.collection.Student;

import java.io.Serializable;
import java.util.ArrayList;

public class Classes implements Serializable {
    private static final long serialVersionUID = -7097903749347750461L;
    private String className;
    private ArrayList<com.bjsxt.IO.Stu> al;  //要将classes写入磁盘 那Student也得是可序列化和可反序列化的

    public Classes(String className, ArrayList<Stu> al) {
        this.className = className;
        this.al = al;
    }

    public Classes() {
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public ArrayList<Stu> getAl() {
        return al;
    }

    public void setAl(ArrayList<Stu> al) {
        this.al = al;
    }

    @Override
    public String toString() {
        return "classes{" +
                "className='" + className + '\'' +
                ", al=" + al +
                '}';
    }
}


读写

package com.bjsxt.IO;

import java.io.*;
import java.util.ArrayList;

public class TestObjectOutputStream3 {
    public static void main(String[] args) {
        write();
        read();
    }

    //写对象
    public static void write(){
        //创建学生对象
        ArrayList<Stu> al = new ArrayList<>();
        Stu stu1 = new Stu("zhang",20,"123456");
        Stu stu2 = new Stu("yang",22,"654321");
        Stu stu3 = new Stu("chen",23,"888888");
        al.add(stu1);
        al.add(stu2);
        al.add(stu3);

        //创建班级对象
        Classes cl = new Classes("one", al);

        //创建对象输出流
        ObjectOutputStream oos = null;
        try {
            oos = null;
            oos = new ObjectOutputStream(new FileOutputStream("d:/java/classes.txt"));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //关闭流
            if(oos!= null){
                try {
                    oos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

    //读取
    public static void read(){
        ObjectInputStream ois = null;
        try {
            ois = null;
            ois = new ObjectInputStream(new FileInputStream("d:/java/classes.txt"));
            Classes cl = (Classes)ois.readObject();
            System.out.println(cl.getClassName()+"\t"+cl.getAl());
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if(ois!=null){
                try {
                    ois.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

}


运行结果

image.png



查了一下说是EOFException是意外到达文件或流的末尾抛出的异常,解决方法有点没看懂。。看不出来52行哪里有问题。。第九行是调用read()。

JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 4550楼

老师,出现了400错误,是我的浏览器有问题吗?控制台显示找不到jdk,请老师指点

image.png

image.png

十一月 08, 2020 10:25:59 上午 org.apache.catalina.core.AprLifecycleListener init

信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.8.0_77\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:/Java/jdk-15.0.1_windows-x64_bin/jdk-15.0.1/bin/server;D:/Java/jdk-15.0.1_windows-x64_bin/jdk-15.0.1/bin;D:\Oracle\product\11.2.0\dbhome_2\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\GtkSharp\2.12\bin;D:\TortoiseSVN\bin;D:\Java\jdk-15.0.1_windows-x64_bin\jdk-15.0.1\bin;C:\Users\admin\AppData\Local\Microsoft\WindowsApps;"%TOMCAT_HOME%\bin;";"%TOMCAT_HOME%\lib;";;D:\eclipse\eclipse-jee-2020-09-R-win32-x86_64\eclipse;;.

十一月 08, 2020 10:25:59 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin

警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:rbacDemo' did not find a matching property.

十一月 08, 2020 10:25:59 上午 org.apache.coyote.AbstractProtocol init

信息: Initializing ProtocolHandler ["http-bio-8080"]

十一月 08, 2020 10:25:59 上午 org.apache.coyote.AbstractProtocol init

信息: Initializing ProtocolHandler ["ajp-bio-8009"]

十一月 08, 2020 10:25:59 上午 org.apache.catalina.startup.Catalina load

信息: Initialization processed in 655 ms

十一月 08, 2020 10:25:59 上午 org.apache.catalina.core.StandardService startInternal

信息: Starting service Catalina

十一月 08, 2020 10:25:59 上午 org.apache.catalina.core.StandardEngine startInternal

信息: Starting Servlet Engine: Apache Tomcat/7.0.47

十一月 08, 2020 10:26:00 上午 org.apache.catalina.util.SessionIdGenerator createSecureRandom

信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [819] milliseconds.

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/core is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.startup.TaglibUriRule body

信息: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined

十一月 08, 2020 10:26:02 上午 org.apache.catalina.core.ApplicationContext log

信息: No Spring WebApplicationInitializer types detected on classpath

十一月 08, 2020 10:26:02 上午 org.apache.catalina.core.ApplicationContext log

信息: Initializing Spring root WebApplicationContext

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

十一月 08, 2020 10:26:03 上午 org.apache.catalina.core.ApplicationContext log

信息: Initializing Spring FrameworkServlet 'springmvc'

十一月 08, 2020 10:26:04 上午 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler ["http-bio-8080"]

十一月 08, 2020 10:26:04 上午 org.apache.coyote.AbstractProtocol start

信息: Starting ProtocolHandler ["ajp-bio-8009"]

十一月 08, 2020 10:26:04 上午 org.apache.catalina.startup.Catalina start

信息: Server startup in 4925 ms


JAVA 全系列/第六阶段:项目管理与SSM框架/RBAC实战 4551楼
WEB前端全系列/第十六阶段:React企业级项目/企业级后台管理系统 4554楼
JAVA 全系列/第十四阶段:全文检索服务/Spring Data For Apache Solr 4555楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 4556楼
JAVA 全系列/(隐藏)第三十阶段:设计模式/框架源码分析(拓展)/Spring 框架底层源码分析 4559楼

老师

1、selenium的获取URL方法

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.maximize_window()

driver.get('http://www.baidu.com')
sleep(2)
try:
    driver.find_element_by_id('kw').send_keys('汽车之家')
    driver.find_element_by_id('su').click()
    '''延时操作,访问页面'''
    driver.implicitly_wait(10)
    # WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'//div[@id="1"]/h3/a'))).send_keys(Keys.ENTER)
    driver.find_element_by_xpath('//div[@id="1"]/h3/a').send_keys(Keys.ENTER)    # 或者 Keys.RETURN
    '''页面相关操作'''
    driver.implicitly_wait(10)
    a = driver.current_url
    print(a)

except Exception as e:
    print(e)

finally:
    sleep(10)
    driver.quit()


这个方法为什么获取不到当前访问页面的URL?比如这里成功通过百度,跳转到了汽车之家的官网,调用这个方法打印的是百度搜索页面的URL,还是说这个方法本来就是这样?如何获取到当前页面的url呢?


2、selenium获取页面源代码

获取源代码应该也是根据他当前获取的URL的源代码吧,比如这里只能获取百度搜索页面的的URL,所以打印的也是百度搜索页面的源码

Python 全系列/第十五阶段:Python 爬虫开发/爬虫反反爬- 4560楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637