0

就像标题一样,我们要随机刷新几次。

我不能driver.refresh ()随机运行几次吗?

  ran_list = [1, 4, 5, 2, 7]

        while True:
            previous_url = driver.current_url
            list_of_links = driver.find_elements_by_xpath("//table//tr//td[@class='subject left txtBreak']/a")

            for linktext in range(len(list_of_links)):
                rand_idx = randint(0, len(ran_list)-1) 
                random_num = ran_list[rand_idx]
                list_of_links = driver.find_elements_by_xpath("//table//tr//td[@class='subject left txtBreak']/a")
                element = list_of_links[linktext]                
                driver.execute_script("arguments[0].click();", element)
                time.sleep(3)
                driver.refresh(str(random_num)) #An error occurs at this point.
                time.sleep(3)
                driver.back()
                time.sleep(3)
                .
                .
4

2 回答 2

1

Driver.navigate.refreshcommand:这是 Selenium Web 驱动程序提供的用于执行页面刷新操作的内置方法。此命令是测试自动化中最常用的用于执行页面刷新操作的命令。如下所述,可以以简单的方式使用刷新命令。

driver.get("http://demo.guru99.com/selenium/guru99home/");
driver.navigate().refresh();

导航是一个界面,用于执行各种浏览器操作,如导航到上一页、导航到下一页、页面刷新、浏览器关闭。导航界面方法可以使用command driver.navigate(). Navigation 接口的 Refresh 方法不接受任何参数或返回任何值。

请在您的代码中应用之前了解该功能更多

于 2019-09-30T16:16:30.057 回答
1

您需要refresh循环调用,而不是将随机 int 作为参数传递。

ran_list = [1, 4, 5, 2, 7]

    while True:
        previous_url = driver.current_url
        list_of_links = driver.find_elements_by_xpath("//table//tr//td[@class='subject left txtBreak']/a")

        for linktext in range(len(list_of_links)):
            rand_idx = randint(0, len(ran_list)-1) 
            random_num = ran_list[rand_idx]
            list_of_links = driver.find_elements_by_xpath("//table//tr//td[@class='subject left txtBreak']/a")
            element = list_of_links[linktext]                
            driver.execute_script("arguments[0].click();", element)
            time.sleep(3)

            # Refresh random number of times
            for i in range(random_num):
                driver.refresh()

            time.sleep(3)
            driver.back()
            time.sleep(3)
于 2019-09-30T16:05:08.810 回答