Что нового

как добраться до вкладки браузера IE?

Shinoby

Новичок
Сообщения
81
Репутация
2
Приветствую всех.
win7, IE10
одно окно браузера, в котором некоторое количество вкладок. грубо говоря по 2 вкладки на сайт. браузер их даже выкрашиает в одинаковые цвета.

пытаюсь всех их нащупать так:
Код:
#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>

Local $aIE[1]
$aIE[0] = 0

Local $i = 1
$oIE = 0
While 1
	$oIE = _IEAttach("", "instance", $i)
	If @error = $_IEStatus_NoMatch Then ExitLoop
	ReDim $aIE[$i + 1]
	$aIE[$i] = $oIE
	$aIE[0] = $i
	$i += 1
WEnd

MsgBox($MB_SYSTEMMODAL, "Browsers Found", "Number of browser instances in the array: " & $aIE[0])

Dim $aoIE[101][3] = [[100, 'Url', 'Title']]
		$oLink = 0
$oLinks = 0
$oInput = 0
$oForm = 0
$oIE = 0
$iCount = 0
While 1
    $iCount += 1
    $aoIE[$iCount][0] = _IEAttach('', 'Instance', $iCount)
    If @error Then ExitLoop
    $aoIE[$iCount][1] = _IEPropertyGet($aoIE[$iCount][0], 'locationurl')
    $aoIE[$iCount][2] = _IEPropertyGet($aoIE[$iCount][0], 'title')
WEnd
ReDim $aoIE[$iCount][3]
$aoIE[0][0] = $iCount - 1
_ArrayDisplay($aoIE)


в результате вижу только 3 instance (открывал googl, yandex, yahoo), и адреса первых вкладок в группе. _IEAttach ни по url ни по title - не ловятся (no match)

хэлп.
 
Автор
S

Shinoby

Новичок
Сообщения
81
Репутация
2
мозг вскипел и выпарился...
пример с поисковиками я создал в том окне, которое родилось после жизненной ситуации.

сейчас я перезапустил браузер, пооткрывал кучу вкладок на одних и тех же сайтах - и все ОК, каждая вкладка обнаруживается....

проблема такая возникает, когда новое окно открывает скрипт на сайте. может он чего делает?
вот его код из страницы:
Код:
<script type="text/javascript">
$(function(){
	$(".clixgrid_block td").each(function(){
		var tbltd = $(this).parent().children().index(this)+1;
		var tblrow = $(this).parent().parent().children().index(this.parentNode)+1;
		var tblcoord = tblrow+','+tbltd;
			  	if('18,2' == tblcoord)
		
		{
			$(this).addClass('clixgrid_clicked'); 
			$(this).attr({'title': 'You have already clicked this position today.'});
			$(this).removeAttr("onclick");
		}
		
	  		});
});

и сам вызов:

Код:
<div class="clixgrid_block">
	<table width="100%" cellspacing="0" onmouseout="clixmove(0,0);">
    	    	<tr>
        	            <td onclick="clixdo(1,1);" onmouseover="clixmove(1,1)"></td>
                        <td onclick="clixdo(1,2);" onmouseover="clixmove(1,2)"></td>
                        <td onclick="clixdo(1,3);" onmouseover="clixmove(1,3)"></td>
                        <td onclick="clixdo(1,4);" onmouseover="clixmove(1,4)"></td>
                        <td onclick="clixdo(1,5);" onmouseover="clixmove(1,5)"></td>
                        <td onclick="clixdo(1,6);" onmouseover="clixmove(1,6)"></td>
..........
 
Автор
S

Shinoby

Новичок
Сообщения
81
Репутация
2
не ужели никто не сталкивался?
видимо дурит браузер, но что с этим делать??? сейчас открыл несколько вкладок на разные сайты - находит только первую вкладку.
закрыл первую вкладку - осталось еще 5. скрипт НЕ нашел ни одной :stars:
при этом они работают, я могу по ним переключаться, серфить - все ОК. но функции скрипта их не видят! будто IE вообще не открыт!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Shinoby,
Дайте ссылки на страницы, которые не находит.
 

InnI

AutoIT Гуру
Сообщения
4,958
Репутация
1,448
Shinoby
Попробуйте так
Код:
#include "UIAutomate.au3"
$oParent = _UIA_GetElementFromHandle(WinGetHandle("[class:IEFrame]"))
$aTabs = _UIA_FindAllElements($oParent, "ControlType", $UIA_TabItemControlTypeId)
For $i = 1 To $aTabs[0]
  ConsoleWrite(_UIA_ElementGetPropertyValue($aTabs[$i], "Name") & @CRLF)
  ConsoleWrite(_UIA_ElementGetPropertyValue($aTabs[$i], "LegacyIAccessible.Description") & @CRLF)
  ConsoleWrite("--------------------" & @CRLF)
Next
Тем более, что UDF вам уже знакома.
 
Автор
S

Shinoby

Новичок
Сообщения
81
Репутация
2
через UIAutomate.au3 - не пробовал.
но проблему таки нашел, на мысль навели ответы на забугорных сайтах по программированию.

у меня win7 со своим особым подходом к безопасности. по этому если я использую #RequireAdmin и/или ставлю "запускать от имени администратора" на вкладке программы - то сколько бы ни было вкладок - скрипт видит только одну. первую.
да еще и проблемы с mouseclick и mousemove возникают.

к счастью в данном конкретном случае потребности в админ-правах не было. но извилины пришлось выпрямить а затем посгибать обратно...
 
Верх