SF-登录**环境并下载数据 --遇到问题汇总:

1.驱动
driver = webdriver.Firefox()

F需要大写

2.设置控件属性:

js查找元素
带不带s
js = 'document.getElementById("loginWrap").className="showtab2"'

getElement 带s 时是列表

3.元素赋值
js = 'document.getElementById("loginWrap").className="showtab2"'

class 找不到,必须为 className

4.页面跳转后定位不到元素 ==等待时间不够

5.定位到元素后,提示:element is not reachable by keyboard 无法键盘操作该元素
解决方案:找到元素后,点击激活,然后输入对应参数
element = driver.find_element_by_css_selector('#searchDiv > div:nth-child(1) > span')
element.click()
time.sleep(1)
driver.switch_to.active_element.send_keys('admin')

6.设置火狐浏览器不弹框提醒
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")

driver = webdriver.Firefox(profile)

代码实现: 

class Login:
    def __init__(self, host_pd):
        self.host_pd = host_pd

    def __login__(self):
        # 火狐浏览器设置不弹框提醒
        profile = webdriver.FirefoxProfile()
        profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
        driver = webdriver.Firefox(profile)
        # 获取生产相关参数
        #  实例化configParser对象
        config = configparser.ConfigParser()
        # 当前文件夹的父文件夹,并用‘/’分隔
        pathlsit = os.path.dirname(os.path.dirname(__file__)).split('/')
        # 获取配置对应文件的具体位置
        pathstr = '\\'.join(pathlsit) + '\\Config\\myapp.ini'
        # print(pathstr)
        # -read读取ini文件
        config.read(pathstr, encoding='utf-8')
        # 获取相关参数
        self.url = config.get(self.host_pd, 'url')
        self.username = config.get(self.host_pd, 'username')
        self.passwd = config.get(self.host_pd, 'passwd')
        self.road = config.get('download_road', 'road')
        # print(self.road)
        # print(self.road.strip("'") + 'imgcode.png')

        # 访问网址
        driver.get(self.url)
        time.sleep(0.5)
        js = 'document.getElementById("loginWrap").className="showtab2"'
        driver.execute_script(js)
        time.sleep(0.5)
        # 输入账号
        driver.find_element_by_id('username').send_keys(self.username)
        # 输入密码
        driver.find_element_by_id('password').send_keys(self.passwd)
        # 获取校验码图片
        filepath = self.road.strip("'") + 'imgcode.png'
        driver.find_element_by_id('imgcode').screenshot(filepath)
        code = verifycode(filepath)
        driver.find_element_by_id('verifyCode').send_keys(code)
        driver.find_element_by_id('verifyCode').send_keys(Keys.ENTER)
        time.sleep(3)
        os.remove(filepath)
        return driver
原文地址:https://www.cnblogs.com/like1824/p/15075727.html