class ClassifierClient
Public Class Methods
new(host, port)
click to toggle source
# File lib/testai_classifier.rb, line 14 def initialize(host, port) @stub = Classifier::Stub.new("#{host}:#{port}", :this_channel_is_insecure) end
Public Instance Methods
classify_images(label, element_images, confidence=DEF_CONFIDENCE, allow_weaker_matches=false)
click to toggle source
# File lib/testai_classifier.rb, line 18 def classify_images(label, element_images, confidence=DEF_CONFIDENCE, allow_weaker_matches=false) ecr = ElementClassificationRequest req = ecr.new(labelHint: label, elementImages: element_images, confidenceThreshold: confidence, allowWeakerMatches: allow_weaker_matches) resp = @stub.classify_elements(req) ret = {} resp.classifications.each do |id, cls| ret[id] = { :label => cls.label, :confidence => cls.confidence, :confidence_for_hint => cls.confidenceForHint } end return ret end
find_elements_matching_label(driver, label, confidence=DEF_CONFIDENCE, allow_weaker_matches=false)
click to toggle source
# File lib/testai_classifier.rb, line 37 def find_elements_matching_label(driver, label, confidence=DEF_CONFIDENCE, allow_weaker_matches=false) els = driver.find_elements(:xpath, QUERY) element_images = {} els.each do |el| begin element_images[el.ref] = el.screenshot rescue end end if element_images.size < 1 raise "Could not find any screenshots for leaf node elements" end matched = self.classify_images(label, element_images, confidence, allow_weaker_matches) return els.select {|el| matched.has_key? el.ref} end