为什么硒的运行速度比手动测试慢5倍



我正在测试一个web应用程序,该应用程序使用Vue.js框架并在后台运行WebAssembly二进制文件。使用python中的selenium和googlechrome驱动程序运行完全相同的任务要比手动启动任务慢得多。我说的不是检测页面上的任何元素,等等。我特别指的是运行wasm模块本身的执行时间(web应用程序报告执行时间(。有什么想法吗?我使用的是Fedora Linux 32,它是谷歌Chrome 90.0.4430.85(官方版本((64位(的最新发行版更新(因此我相信网络驱动程序也是90版(。附言:这是我所指的申请:https://durrantlab.pitt.edu/webina/

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
import argparse
from pathlib import Path

def dir_path(string):
if Path(string).exists():
return Path(string).resolve()
else:
raise FileNotFoundError(string)

parser = argparse.ArgumentParser(description='Pass arguments to feed to webina.')
parser.add_argument('--receptor', type=dir_path, required=True)
parser.add_argument('--ligand', type=dir_path, required=True)
parser.add_argument('--center_x', type=float, required=True)
parser.add_argument('--center_y', type=float, required=True)
parser.add_argument('--center_z', type=float, required=True)
parser.add_argument('--size_x', type=float, required=True)
parser.add_argument('--size_y', type=float, required=True)
parser.add_argument('--size_z', type=float, required=True)
args = parser.parse_args()

browser = webdriver.Chrome()

browser.get('https://durrantlab.pitt.edu/webina/')

receptor_file = browser.find_element_by_id('__BVID__16')
lignad_file = browser.find_element_by_id('__BVID__20')
center_x = browser.find_element_by_id('center_x')
center_y = browser.find_element_by_id('center_y')
center_z = browser.find_element_by_id('center_z')
size_x = browser.find_element_by_id('size_x')
size_y = browser.find_element_by_id('size_y')
size_z = browser.find_element_by_id('size_z')
start_webina = browser.find_element_by_xpath("//*[contains(text(), 'Start Webina')]")

center_x.send_keys(repr(args.center_x))
center_y.send_keys(repr(args.center_y))
center_z.send_keys(repr(args.center_z))
size_x.send_keys(repr(args.size_x))
size_y.send_keys(repr(args.size_y))
size_z.send_keys(repr(args.size_z))
receptor_file.send_keys(str(args.receptor))
lignad_file.send_keys(str(args.ligand))

start_webina.click()


WebDriverWait(browser, 100000).until(ec.visibility_of_element_located((By.XPATH, "//*[contains(text(), 'Standard Output')]/../div/button")))
standard_download = browser.find_element_by_xpath("//*[contains(text(), 'Standard Output')]/../div/button")
standard_download.click()
pdbqt_download = browser.find_element_by_xpath("//*[contains(text(), 'Output PDBQT')]/../div/button").click()
browser.implicitly_wait(5)
browser.quit()

问题是不能正确处理少数字段。

检查速度并修复定位器。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
browser = webdriver.Chrome()
browser.get('https://durrantlab.pitt.edu/webina/')
browser.implicitly_wait(15)
# receptor_file = browser.find_element_by_id('__BVID__16')
# lignad_file = browser.find_element_by_id('__BVID__20')
center_x = browser.find_element_by_id('center_x')
center_y = browser.find_element_by_id('center_y')
center_z = browser.find_element_by_id('center_z')
size_x = browser.find_element_by_id('size_x')
size_y = browser.find_element_by_id('size_y')
size_z = browser.find_element_by_id('size_z')
start_webina = browser.find_element_by_xpath("//*[contains(text(), 'Start Webina')]")
center_x.send_keys("test")
center_y.send_keys("test")
center_z.send_keys("test")
size_x.send_keys("test")
size_y.send_keys("test")
size_z.send_keys("test")
start_webina.click()  
WebDriverWait(browser, 10).until(
ec.visibility_of_element_located((By.XPATH, "//*[contains(text(), 'Standard Output')]/../div/button")))  # Here will be thrown timeout because element is not found
standard_download = browser.find_element_by_xpath("//*[contains(text(), 'Standard Output')]/../div/button")
standard_download.click()
pdbqt_download = browser.find_element_by_xpath("//*[contains(text(), 'Output PDBQT')]/../div/button").click()
browser.quit()

站点不允许在start_webina.click()之后执行操作,因为未设置某些字段。

回答您的问题:由于WebDriverWait(browser, 100000).10000,测试很慢秒超时有点大,你不这么认为吗?

还要注意我在哪里设置隐含等待,以及在哪里执行。

编辑:你在那里添加了一些文件。上传time.wait()后尝试添加。等待时间取决于上传所需的时间。然后用显式等待替换此时间。

我认为你上传文件也有问题,请核实。但这是另一个问题。

相关内容

  • 没有找到相关文章

最新更新