Есть ли какой-либо возможный способ индексирования/списка и сравнения значений <img src="">
с использованием веб-браузера watir или selenium ?.Watir или Selenium webdriver - Найти для IMG SRC duplicated
Update # 1
Я успешно удался прогрессировать по общему сценарию для нахождения права <div>
, содержащих фотографии
require 'watir-webdriver'
require 'selenium-webdriver'
b = Watir::Browser.new :firefox
$i = 1
(1..1000).each do |i|
b.goto 'http:example.com'
b.div(:id, 'pic_container').wait_until_present
puts 'div present'
begin
if
else
end
end
b.close
Там будет больше кодирования, единственным, что я не могу Решение перечисляет все доступные изображения, сравнивает их источники и выводит результаты.
Update # 2
Спасибо как JustinKo и Carldmitch за их ответы. Я пошел на это сейчас:
require 'watir-webdriver'
require 'selenium-webdriver'
b = Watir::Browser.new :firefox
b.goto 'https://trafficmonsoon.com'
begin
Watir::Wait.until { b.url == "http://example.com" }
b.a(:href, "http://example.com/img").wait_until_present
b.a(:href, "http://example.com/img").click
Watir::Wait.until { b.url == "http://example.com/img" }
b.driver.manage.timeouts.implicit_wait = 10
b.a(:class, "btn").click
end
$i = 1
(1..1000).each do |i|
b.driver.manage.timeouts.implicit_wait = 30
pics_set = b.div(:id, 'pics_container').images
pics_array = []
pics_set.each_with_index do |image|
pics_array.push(image.current_src)
end
puts pics_array.find_all {|e| pics_array.rindex(e) != pics_array.index(e) }.uniq
end
b.close
Единственная проблема здесь, является то, что он не показывая, какая картинка дублируется, а, это только показывает все img src
без одного дублируется. Любой намек на это ?.
Заранее спасибо.
Update # 3
Я получил это работает, он печатает дублированный img src
, но не может использовать выходные данные, чтобы сделать некоторые взаимодействия веб-браузера (щелчки & тащит)
Update # 4
Я успешно удалось взаимодействовать с данными, единственное, что я хочу знать, есть ли способ ПИК один или Аноф er duplicized? ?, так как оба ahve одинаково img src
, нельзя нажать или перетащить из этого атрибута.
Вот код, который я получил сейчас
require 'sub'
require 'watir-webdriver'
require 'selenium-webdriver'
b = Watir::Browser.new :firefox
b.goto 'https://example'
begin
Watir::Wait.until { b.url == "http://example.com/img" }
b.a(:href, "http://example.com/imgs").wait_until_present
b.a(:href, "http://example.com/imgs").click
Watir::Wait.until { b.url == "http://example.com/imgs" }
b.driver.manage.timeouts.implicit_wait = 10
b.a(:class, "btn btn-xs btn-danger").click
end
b.driver.manage.timeouts.implicit_wait = 30
pics_set = b.div(:id, 'site_loader').images
pics_array = []
pics_set.each_with_index do |image|
pics_array.push(image.current_src)
end
duplicated = pics_array.find_all {|e| pics_array.rindex(e) != pics_array.index(e) }.uniq
duplicated[0].sub!("http://example.com
b.img(:src, duplicated).click", ".")
Update # 5
Вот пример div
я Diggin' в
<div id="pic_container">
<img src="./images/test/3.png" style="cursor:pointer;width:64px" onclick="checkClick ("7hva9f")">
<img src="./images/test/5.png" style="cursor:pointer;width:59px" onclick="checkClick ("xt0nnc")">
<img src="./images/test/5.png" style="cursor:pointer;width:67px" onclick="checkClick ("1tyz9b")">
<img src="./images/test/1.png" style="cursor:pointer;width:67px" onclick="checkClick ("300yp7")">
<img src="./images/test/7.png" style="cursor:pointer;width:67px" onclick="checkClick ("pzxgyh")">
</div>
Трудно понять, что именно вы ищете. Можете ли вы привести пример - то есть HTML, что вы пытаетесь сделать и что вы пробовали? –
Конечно, я хотел бы осмотреть веб-сайты, которые ищут дублированные изображения по его исходному адресу. Я думаю, что лучший способ сделать это - проверить и массировать/перечислить все дублированные изображения по их исходному адресу, а затем сравнить их, чтобы увидеть, есть ли дубликат. Прямо сейчас я работаю над сценарием watir/selenium, мне удалось запустить скрипт для поиска отдельных элементов, но не для массива. – lynspyre