小编scr*_*ibe的帖子

如何使用带有 python、selenium 和 chromedriver 的 Brave 网络浏览器?

我从 Google 的 Chrome 切换到Brave 网络浏览器,但很难让它像 Chrome 一样与 Brave 一起使用。Brave 是基于铬的,所以我猜它不应该那么难。我确保我的 Brave 和 Chromedriver 使用相同的版本,

~/some/path $ chromedriver --version
ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})
Run Code Online (Sandbox Code Playgroud)

我的 chromedriver 也在/user/bin

~/path $ cd /usr/bin/
/usr/bin $ ls | grep chromedriver
chromedriver 
Run Code Online (Sandbox Code Playgroud)

要检查 Brave 版本,我得到: Version 0.68.132 Chromium: 76.0.3809.132 (Official Build) (64-bit)

然后我运行这段代码,

from selenium import webdriver

driver = webdriver.Chrome(executable_path='/usr/bin/brave-browser')
driver.get("http://www.python.org")
driver.close()
Run Code Online (Sandbox Code Playgroud)

这会打开一个 Brave 窗口,但不是获取驱动程序指向的页面,而是抛出异常,

Traceback (most recent call last):
  File "webscrap.py", line 3, in <module>
    driver = webdriver.Chrome(executable_path='/usr/bin/brave-browser')
  File "/home/username/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line …
Run Code Online (Sandbox Code Playgroud)

python selenium selenium-chromedriver brave brave-browser

7
推荐指数
2
解决办法
8613
查看次数

当父组件的状态发生变化时,如何更新(重新渲染)React 中的子组件?

好的,我已经知道一种方法来做到这一点。但是,我问这个以防我重新发明轮子,因为我对 React 非常陌生。我的印象是,如果父组件通过 props 将她的状态传递给子组件而不是更新父组件的状态,那么子组件将在需要时重新渲染。但情况似乎并非如此。我设置了这个例子,

class Child extends Component {
  constructor(props) {
    super(props);
    this.state = {
      number: props.number,
    };
  }

  updateNumber(n) {
    this.setState({number: n});
  }

  render() {
    return (<h1>{this.state.number}</h1>);
  }
}

class Parent extends Component {

  constructor(props) {
    super(props);
    this.state = {
      number: -1,
    };
    this.child = React.createRef();
    setInterval(this.updateState.bind(this), 1000);
  }

  updateState() {
    console.log(this.state);
    this.setState({
      number: Math.floor((Math.random() * 10) + 1),
    });
    // this.child.current.updateNumber(this.state.number);
  }

  render() {
    return (
      <div>
        <Child ref={this.child} number={this.state.number}/>
      </div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,除非我明确定义一个引用并使用它来调用子级的更新函数(注释部分),否则每次更新父级的状态时都不会重新渲染子级。所以是这样吗?如果他们的父母的状态作为道具传递给他们,你是否应该手动更新你的孩子的状态(heh)或者他们应该自动更新(并因此重新渲染)。

javascript reactjs react-props react-component react-state

3
推荐指数
2
解决办法
1万
查看次数