Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите написать css селектор / 25 сообщений из 33, страница 1 из 2
19.03.2017, 19:11
    #39422627
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
Есть такой кусок страницы:

Код: html
1.
2.
3.
4.
<div class="detail-row">
                        <div class="item country font-light">Tracking number:</div>
                        <div class="item icon"></div>
                        <div class="item msg">1234567890</div>



Вот таких detail-row много.

Мне нужно добраться до <div class="item msg"> именно того <div class="detail-row"> в котором есть <div class="item country font-light"> с текстом Tracking number:

Возможно ли написать такой селектор, или только перебирать по одному?
...
Рейтинг: 0 / 0
19.03.2017, 19:43
    #39422645
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
iskatelsql,

есть CSS-селектор :has в черновиках, который нигде не работает. поэтому только как-то так:

https://jsfiddle.net/h35kv580/
...
Рейтинг: 0 / 0
19.03.2017, 19:43
    #39422646
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
...
Рейтинг: 0 / 0
19.03.2017, 19:45
    #39422649
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
iskatelsql,

да, добраться до итема:

https://jsfiddle.net/h35kv580/1/
...
Рейтинг: 0 / 0
19.03.2017, 19:47
    #39422652
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
вадя http://jquery.page2page.ru/index.php5/Селектор_по_тексту

И чё?

https://developer.mozilla.org/en-US/docs/Web/CSS
https://www.w3schools.com/cssref/css_selectors.asp

Вот расово правильная документация. Но это ничем автору не поможет.
...
Рейтинг: 0 / 0
19.03.2017, 20:16
    #39422658
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVosttИ чё?
$('div[class="item country font-light"]:contains("Tracking number:")').parent().html()
"
<div class="item country font-light">Tracking number:</div>
<div class="item icon"></div>
<div class="item msg">1234567890</div>
"
...
Рейтинг: 0 / 0
19.03.2017, 20:19
    #39422660
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVostt


Это я алиэкспресс мучаю, пытаюсь достать трек номера заказов. Т.е. уже достал таким вот селектором (скопировал из отладчика)

#J_Package0Content > div.physical-detail > div.consignment-detail-content > div:nth-child(1) > div.item.msg

Но боюсь если чтото на странице изменят, все сломается. (ИМХО вероятность что изменят тот блок, что в первом сообщении, меньше чем то что изменят например расположение блоков)

Ваш селектор селениум (с драйвером хрома) совсем никак есть не хочет, An invalid or illegal selector was specified

я его так записал:

.detail-row:has(.item.country.font-light:contains("Tracking number:")) > .item.msg

по сути только ">" добавил. пробовал еще div перед первыми точками написать - тоже самое :(
...
Рейтинг: 0 / 0
19.03.2017, 20:20
    #39422661
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
вадя,

Прочитай ещё раз задачу ТС внимательно. Посмотри моё решение по ссылке. Твои ссылка и приведённый код не решают задачу ТС. Как обычно в общем-то
...
Рейтинг: 0 / 0
19.03.2017, 20:27
    #39422665
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVostt,
$('div[class="item country font-light"]:contains("Tracking number:")').parent().find('div[class="item msg"]').html()
...
Рейтинг: 0 / 0
19.03.2017, 20:27
    #39422666
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
iskatelsql,

Надо было уточнить, что речь идёт о селениуме.

https://kreisfahrer.gitbooks.io/selenium-webdriver/content/webdriver_api_slozhnie_vzaimodeistviya/lokatori_css,_xpath,_jquery.html

Посмотри про jQuery локаторы. Стандартный базовый локатор по CSS не умеет всего того, что умеет jQuery локатор. Ещё можно попробовать на XPath что-нибудь соорудить.
...
Рейтинг: 0 / 0
19.03.2017, 20:28
    #39422668
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
вадяhVostt,
$('div[class="item country font-light"]:contains("Tracking number:")').parent().find('div[class="item msg"]').html()

Не корректно. Парент должен быть .detail-row, где у тебя такой фильтр?
...
Рейтинг: 0 / 0
19.03.2017, 20:33
    #39422670
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVosttНе корректно. Парент должен быть .detail-row, где у тебя такой фильтр?
$('div[class="item country font-light"]:contains("Tracking number:")').parent('.detail-row').find('div[class="item msg"]').html()
"1234567890"
...
Рейтинг: 0 / 0
19.03.2017, 20:35
    #39422671
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVostt
селениум позволяет выполнить произвольный JS код в контексте страницы, можно копать в этом направлении.

Только как понимать:
"есть CSS-селектор :has в черновиках, который нигде не работает."?

Вы же в примере его и используете...
...
Рейтинг: 0 / 0
19.03.2017, 21:20
    #39422687
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
вадя$('div[class="item country font-light"]:contains("Tracking number:")').parent('.detail-row').find('div[class="item msg"]').html()
"1234567890"

Долго же пришлось добиваться от тебя решения именно поставленной задачи ))))
И странно видеть такое кривое, крайне медленное и оптимальное решение видеть от человека, который только недавно всеми силами упирался и топил за супер сверх-супер-пупер-мега производительные решения.
...
Рейтинг: 0 / 0
19.03.2017, 21:21
    #39422688
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
iskatelsqlТолько как понимать:
"есть CSS-селектор :has в черновиках, который нигде не работает."?

Вы же в примере его и используете...

Это селектор, которые понимает jQuery, и когда браузеры станут его поддерживать, jQuery будет использовать нативные средства.
...
Рейтинг: 0 / 0
19.03.2017, 21:41
    #39422698
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVosttвадя$('div[class="item country font-light"]:contains("Tracking number:")').parent('.detail-row').find('div[class="item msg"]').html()
"1234567890"

Долго же пришлось добиваться от тебя решения именно поставленной задачи ))))
И странно видеть такое кривое, крайне медленное и оптимальное решение видеть от человека, который только недавно всеми силами упирался и топил за супер сверх-супер-пупер-мега производительные решения.


я превоначально показал основу. дал повод тс для размышления.
...
Рейтинг: 0 / 0
19.03.2017, 21:46
    #39422701
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVostt,
использование jQuery само по себе подразумевает кучу лишнего кода, и не факт, что твой вариант будет быстрее. не известно, что скрывается под парсингом сраки условий выбора в твоём и моём вариаттах
...
Рейтинг: 0 / 0
19.03.2017, 21:47
    #39422702
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
вадя,
строки. :)
...
Рейтинг: 0 / 0
20.03.2017, 08:29
    #39422793
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
вадяhVostt,
использование jQuery само по себе подразумевает кучу лишнего кода

Ты заявляешь абсолютную чушь и откровенную ложь. jQuery и другие подобные библиотеки изначально были созданы с целью уменьшить количество лишнего, повторяющегося кода. Размер кода с применением jQuery будет меньше, он будет чище, понятнее, универсальнее, поддерживать фичи, которые ещё не реализованы в некоторых браузерах, или реализованы по-разному, чем "чистый код".

Я не то, чтобы дикий фанат jQuery, и в целом считаю, что разработчик должен уметь работать на чистом ванильном JS и понимать, как всё устроено и работает, но ты говоришь просто феерические глупости.
...
Рейтинг: 0 / 0
20.03.2017, 09:32
    #39422819
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
iskatelsqlМне нужно добраться до <div class="item msg"> именно того <div class="detail-row"> в котором есть <div class="item country font-light"> с текстом Tracking number:

Возможно ли написать такой селектор, или только перебирать по одному?
Есть такой селектор!
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('.detail-row > .item.country.font-light:contains("Tracking number:") + .item.icon + .item.msg').each(function(){
		alert($(this).text());
	});
});
</script>
</head>
<body>
<div class="detail-row">
	<div class="item country font-light">Tracking number:</div>
	<div class="item icon"></div>
	<div class="item msg">0</div>
</div>
<div class="detail-row">
	<div class="item country">Tracking number:</div>
	<div class="item icon"></div>
	<div class="item msg">1</div>
</div>
<div class="detail-row">
	<div class="item country font-light">Other:</div>
	<div class="item icon"></div>
	<div class="item msg">2</div>
</div>
<div class="detail-row">
	<div class="item country font-light">Tracking number:</div>
	<div class="item icon"></div>
	<div class="item msg">3</div>
</div>
</body>
</html>


Выбираются как раз 2 таких варианта...
...
Рейтинг: 0 / 0
20.03.2017, 09:36
    #39422822
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
iskatelsql , но класс item , в твоем варианте, вообще лишен смысла... Можно обойтись и без него.
Он только помехи создает...
...
Рейтинг: 0 / 0
20.03.2017, 09:45
    #39422828
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
Код: plaintext
.detail-row > .item.country.font-light + .icon + .msg
...
Рейтинг: 0 / 0
20.03.2017, 09:48
    #39422830
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
hVosttТы заявляешь абсолютную чушь и откровенную ложь. jQuery и другие подобные библиотеки изначально были созданы с целью уменьшить количество лишнего, повторяющегося кода. Размер кода с применением jQuery будет меньше, он будет чище, понятнее, универсальнее, поддерживать фичи, которые ещё не реализованы в некоторых браузерах, или реализованы по-разному, чем "чистый код".
то что с использованием jquery кода собственного проекта будет меньше, код будет читабельнее -не спорю
но ты посмотри что делает код самого jquery - там дофига лишнего, нужного только для кроссбраузерности и для универсальности. и этот код будет выполняться всегда. поэтому об увеличении скорости выполнения , сравнения наших вариантов- нет речи.
кода задаётся такая строка
$('.detail-row:has(.item.country.font-light:contains(Tracking number:))')
или такая
$('div[class="item country font-light"]:contains("Tracking number:")').parent('.detail-row').find('div[class="item msg"]').html()
первоначально на должна быть разобрана - а это время. и не известно, который вариант быстрее.
поэтому использование того или иного варианта - дело вкуса.
и при разовом использовании поймать выгоду очень сомнительно.
поэтому твои высказывания 20311545 просто высказывания обиженного ребёнка из-за того , что кто-то предложил ещё вариант :)
...
Рейтинг: 0 / 0
20.03.2017, 09:54
    #39422837
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
вадя, если не разбираться в том, как работает та, или иная библиотека, то да, будет так, как ты пишешь :)
...
Рейтинг: 0 / 0
20.03.2017, 09:54
    #39422838
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать css селектор
krvsa,
а на чистом js?
заменить вот это contains наиболее просто....
чисто для развития и спортивного интереса.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите написать css селектор / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]