2015-07-05 5 views
0

По существу у меня есть ссылка внутри огромной таблицы в сафари. Я хочу, чтобы всегда щелкать столбец строки 2. Имя изменения ссылки, которое находится внутри этой ячейки.Нажмите ссылку в Safari, которая находится внутри таблицы

Вот HTML http://pastebin.com/UuwFfcyG

Я поставил визуальный маркер в коде, где я хочу нажать кнопку. Но в этом примере вы можете найти «1222», и он будет тянуть вверх.

Как правило, после нажатия этой ссылки открывается окно, в котором я могу взломать и использовать системные события, чтобы вставить вкладку и выбрать материал, а затем перезагрузить страницу и сделать это снова.

Бонус, если вы можете сказать мне, как проверить текст в следующей колонке. Строка 2 Столбец 2. Если он говорит «открыть», нажмите на ссылку в ячейке слева.

Полное раскрытие информации Я написал программу AppleScript, которая делает это, но делает это, используя клики на основе python, определяемые координатами экрана, поэтому, если разрешение изменяется или я добавляю другой монитор, он прерывает программу. Это так хреново, но это определенно работает. Я просто ищу что-то более родное.

Любая помощь будет оценена! Спасибо Brandon

ответ

0

Итак, вы автоматически хотите увидеть, есть ли ссылка в строке 2, колонке 1 этой таблицы и нажмите на нее?

<script LANGUAGE="Javascript"> 
function clickLinksInTable(i) { 
    // check if a link even exists in this row 
    if (!document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[0].getElementsByTagName("a")[0] || !document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[1]) { 
     // fail silently. 
    } else { 
     // check if the next column to the right contains the word "open" . 
     if (document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[1].innerHTML.toLowerCase().indexOf("open") != -1) { 
      // get the row (tr) that the user wants (the first row never contains a link, so add one to i to avoid this being a problem) 
      // then get the first column (td) in that row, and then get the first (probably only) link in that column. 
      link = document.getElementsByTagName("tr")[i+1].getElementsByTagName("td")[0].getElementsByTagName("a")[0]; 
      // then... click on it! While we're mainly focussed on Safari, it's good to support other browsers as well, 
      // just in case we want to use this code again elsewhere. 
      // Firefox 
      if (document.createEvent) { 
       var event = document.createEvent("MouseEvents"); 
       event.initEvent("click", true, true); 
       link.dispatchEvent(event); 
      } 
      // IE 
      else if (link.click) { 
       link.click(); 
      } 
     } 
    } 
} 
// call the function we made earlier. The value in brackets is the row number of the link you want to click. 
// this will click the link in row two, column one. 
clickLinksInTable(0); 
// this would click the link in row five, column one. 
//clickLinksInTable(3); 
</script> 

Добавьте это после вашего стола.

+0

Всегда есть связь. Но мне не нужно нажимать на нее, если она не сообщит об открытии – Brandon

+0

делает ли это то, что вы хотите сейчас? Или вы имели в виду строку 2, колонку 3? Тот, который говорит, Истекли здесь? В настоящее время у меня есть проверка Row 2, Column 2. – tomysshadow

+0

Простите меня, я не уверен, как я могу обернуть это в Applescript. Можно ли просто нажать на эту ссылку с одной строкой? Я могу добавить логику через Applescript, если я могу понять, как щелкнуть эту первую ссылку. Я не очень беспокоюсь о чтении другой строки, но если есть только одна строка, которую я могу использовать, чтобы скопировать ее в буфер обмена или даже лучше сохранить эту строку в переменной, я могу понять, как ее передать к applescript. Также я очень ценю вашу помощь. http://i.imgur.com/iMPQdjK.png – Brandon

Смежные вопросы