通过 Selenium Webdriver 捕获数据的逻辑 - Python
Logic to Capture the Data through Selnium Web driver - Python
我正在编写测试用例,其中我想捕获数据。也就是说,当我单击下载按钮时,它会显示进度百分比,即(1%、2%、3% 等等,直到 100%)。我想捕获此文本,即以百分比(1%、2% 等直到 100%)显示的进度。我已经尝试并编写了代码,但它只捕获起始数据,即 0,然后是 0%
以下是快照和代码供您参考
from selenium.webdriver.chrome.webdriver import WebDriver
from utilities.BaseClass import BaseClass
import pytest
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="C:\chromedriver")
driver.get("https://www.seleniumeasy.com/test/")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_xpath("//a[text()='No, thanks!']").click()
driver.execute_script("window.scrollTo(300, 500)")
driver.find_element_by_xpath("//a[contains(text(),'& Sliders')]").click()
driver.find_element_by_link_text("Bootstrap Progress bar").click()
driver.find_element_by_xpath("//button[@id='cricle-btn']").click()
percentage = driver.find_element_by_class_name("percenttext").text
percentage1 = []
for percent in percentage:
percentage1.append(percent)
print(percentage1)
time.sleep(21)
driver.close()
您的代码实际上只获取了 percenttext
文本所在的元素一次,而您应该获取该元素并在循环中提取它的文本。像这样:
from selenium.webdriver.chrome.webdriver import WebDriver
from utilities.BaseClass import BaseClass
import pytest
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="C:\chromedriver")
driver.get("https://www.seleniumeasy.com/test/")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_xpath("//a[text()='No, thanks!']").click()
driver.execute_script("window.scrollTo(300, 500)")
driver.find_element_by_xpath("//a[contains(text(),'& Sliders')]").click()
driver.find_element_by_link_text("Bootstrap Progress bar").click()
driver.find_element_by_xpath("//button[@id='cricle-btn']").click()
percentage = driver.find_element_by_class_name("percenttext").text
while not '100%' in percentage:
percentage = driver.find_element_by_class_name("percenttext").text
print(percentage)
time.sleep(21)
driver.close()
我正在编写测试用例,其中我想捕获数据。也就是说,当我单击下载按钮时,它会显示进度百分比,即(1%、2%、3% 等等,直到 100%)。我想捕获此文本,即以百分比(1%、2% 等直到 100%)显示的进度。我已经尝试并编写了代码,但它只捕获起始数据,即 0,然后是 0%
以下是快照和代码供您参考
from selenium.webdriver.chrome.webdriver import WebDriver
from utilities.BaseClass import BaseClass
import pytest
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="C:\chromedriver")
driver.get("https://www.seleniumeasy.com/test/")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_xpath("//a[text()='No, thanks!']").click()
driver.execute_script("window.scrollTo(300, 500)")
driver.find_element_by_xpath("//a[contains(text(),'& Sliders')]").click()
driver.find_element_by_link_text("Bootstrap Progress bar").click()
driver.find_element_by_xpath("//button[@id='cricle-btn']").click()
percentage = driver.find_element_by_class_name("percenttext").text
percentage1 = []
for percent in percentage:
percentage1.append(percent)
print(percentage1)
time.sleep(21)
driver.close()
您的代码实际上只获取了 percenttext
文本所在的元素一次,而您应该获取该元素并在循环中提取它的文本。像这样:
from selenium.webdriver.chrome.webdriver import WebDriver
from utilities.BaseClass import BaseClass
import pytest
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="C:\chromedriver")
driver.get("https://www.seleniumeasy.com/test/")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_xpath("//a[text()='No, thanks!']").click()
driver.execute_script("window.scrollTo(300, 500)")
driver.find_element_by_xpath("//a[contains(text(),'& Sliders')]").click()
driver.find_element_by_link_text("Bootstrap Progress bar").click()
driver.find_element_by_xpath("//button[@id='cricle-btn']").click()
percentage = driver.find_element_by_class_name("percenttext").text
while not '100%' in percentage:
percentage = driver.find_element_by_class_name("percenttext").text
print(percentage)
time.sleep(21)
driver.close()