禁用Chrome剪贴板弹出窗口WebdriverIO

时间:2018-04-25 21:30:05

标签: javascript google-chrome selenium popup webdriver-io

我正在尝试使用webdriverIO(Selenium)禁用chrome剪贴板弹出/通知以实现自动化。我尝试设置chrome选项,但它仍然没有禁用它。我想单击此弹出窗口后面的Web元素,因此我不希望此弹出窗口出现在自动化中。我尝试手动禁用剪贴板设置,但selenium每次都会打开一个新会话,刷新设置。此外,无法使用开发人员工具进行检查。这不是警报,因此接受/解除警报也不起作用。

browser.alertAccept();

browser.alertDismiss();

Chrome Clipboard popup

chromeOptions: {
    args: [
        'disable-infobars',
        'disable-popup-blocking',
        'disable-notifications'
    ],
    prefs: {
        'profile.default_content_settings.popups' : 2,
        'profile.default_content_settings.notifications' : 2,
    }
}

请帮助我解决这个问题,非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

解决方法可能是切换到弹出窗口并将其关闭。

driver.switchTo().alert().dismiss();

driver.switchTo().activeElement().dismiss();
编辑:我发现了一个有趣的网站。请尝试本网站末尾的代码:http://blog.amolchavan.space/block-push-notification-on-chrome-in-selenium-webdriver/

答案 1 :(得分:0)

我看到许多人还建议使用import React, { Component } from "react"; import { View, Text, FlatList,List } from "react-native"; // import {Row} from './Row'; export default class FlatListDemo extends Component { constructor(props) { super(props); this.state = { loading: false, data: [], page: 1, seed: 1, error: null, refreshing: false, }; } componentDidMount() { this.makeRemoteRequest(); } makeRemoteRequest = () => { const { page, seed } = this.state; const url = `https://randomuser.me/api/?seed=${seed}&page=${page}&results=20`; this.setState({ loading: true }); fetch(url) .then(res => res.json()) .then(res => { this.setState({ data: page === 1 ? res.results : [...this.state.data, ...res.results], error: res.error || null, loading: false, refreshing: false }); }) .catch(error => { this.setState({ error, loading: false }); }); }; render() { return ( <View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}> <List> <FlatList data={this.state.data} renderItem={({ item }) => ( <ListItem roundAvatar title={`${item.name.first} ${item.name.last}`} subtitle={item.email} avatar={{ uri: item.picture.thumbnail }} /> )} keyExtractor={item => item.email} /> </List> </View> ); } } ,因此它可能取决于chrome版本。当前的chrome版本可以按以下方式使用此代码

profile.default_content_settings