对网站上的多个操作使用相同的Selenium webdriver?

2024-04-23 06:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个GUI来修改网站上的Javascript文件。它用于创建传单标记,而无需触摸代码。你知道吗

因此,我的设置思想是首先启动Webdriver,然后在第一个函数中转到相应的JavaScript文件。你知道吗

def start():
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    browser = webdriver.Chrome(executable_path="chromedriver")
    browser.get(---> move to the javascript file on the website)
    return browser 

然后,我想有几个其他函数可以作用于textarea,比如添加行、删除行等。问题是,在其他函数中,我还必须使用start函数中的“browser”变量:

def CreateMarker():
    from selenium.webdriver.common.keys import Keys
    code = code.get()
    textarea = browser.find_element_by_class_name('textarea')
    textarea.send_keys(sending some keys)
    safe, yadada etc....

在GUI(用tkinter制作)中,我有一个绑定到start函数的按钮,用于转到网站和文件,另一个按钮用于添加标记代码。你知道吗

所以问题是,createmarker函数无法识别browser变量,当我将createmarker函数中的变量作为createmarker(browser)传递时,它会抱怨“browser”没有定义,只要我想运行GUI。。。你知道吗


Tags: 文件函数代码from标记importbrowser网站
1条回答
网友
1楼 · 发布于 2024-04-23 06:56:19

好吧,我终于让一切都按我想要的方式进行了。破解部分只是使webdriver成为一个全局变量,并在main函数中以正确的方式调用它。你知道吗

现在我在主GUI上有两个按钮,看起来像这样:

# Button to start the webdriver
Button(window, text = "Start", width=11, command=init.actions.start).grid(row=1, column=1, sticky=W)

# Textbox for what to write
Label (window, text='Enter text', bg="black", fg="white") .grid(row=2, column=0, sticky=W)
text = Entry(window, width=20, bg="white")
text.grid(row=3, column =0, sticky=W)

我有一个单独的文件,其中存储了所有与按钮相连的函数。启动webdriver并将文本写入textarea的函数如下所示:

class actions:
    def start(): 
        from selenium import webdriver
        from selenium.webdriver.common.keys import Keys
        import time
        global browser 
        browser = webdriver.Chrome(executable_path="chromedriver")
        browser.get("go to the login page")
        login = browser.find_element_by_name("USER_LOGIN")
        login.send_keys("USERNAME HERE")
        pw= browser.find_element_by_name("USER_PASSWORD")
        pw.send_keys("PASSWORD HERE")
        pw.send_keys(Keys.ENTER)
        time.sleep(5)
        browser.get("page with the file")
        return browser

    def create_code(browser, text):
        from selenium.webdriver.common.keys import Keys
        Text=text.get()
        textarea.send_keys(Text)

所以现在我有一个按钮来初始化webdriver,还有一个单独的按钮来写入文件。你知道吗

相关问题 更多 >