Python Селен L oop Сквозь элементы стола - PullRequest
0 голосов
/ 24 января 2020

Я знаю, что есть похожие вопросы. Я прочитал многие (если не все) из них и все еще потерян.

Я пишу скрипт для автоматизации извлечения / ввода некоторых данных, и мне нужно перебрать неизвестное количество записей в таблице на страница в Интернете. Я создал образец, который вы можете увидеть здесь:

enter image description here

Пока мой скрипт входит в эту систему ERP, переходит на страницу на скриншоте, а затем ждет загрузки StandardGrid с этим:

WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//table[@class='StandardGrid']")))

StandardGrid - это место, где размещены ссылки на веб-странице, которую я хочу перебрать. Здесь я заблудился.

Я пробовал несколько разных find_elements_by_XYZ, но не могу понять, как заставить его работать. Я попытался использовать ChroPath с Inspect в браузере, чтобы определить все возможные способы заставить это работать.

Лучшее, что я мог придумать, в этом случае - главная таблица содержит данные, которые я хочу перебрать, имеет XPath из "//table[@class='StandardGrid']"

Поэтому я попытался сделать следующее:

my_list = driver.find_elements_by_xpath("//a[@class='StandardGrid']")
for item in my_list:
    print(item)

Но ничего не печатается.

Заголовок таблицы столбца, который я хочу перебрать и щелкнуть по всем ссылкам, имеет тег <th xpath="1">Operation</th>

На этом снимке экрана первый URL-адрес имеет тег

'<a href="../Modules/Engineering/ProcessRoutings/PartOperationForm.aspx?Do=Update&amp;Part_Operation_Key=8355805&amp;Part_Key=2920988&amp;Part_No=WP112789+Rev%2E%2D&amp;Revision=-&amp;Image=&amp;Operation=Polish" onmouseover="status='Go To Detail Form'; return true;" onmouseout="status='';" style="" xpath="1">
Polish
</a>'

С данными, которые я использую, существуют сотни возможных ссылок, подобных приведенной выше, поэтому необходимо правильное динамическое c решение.

Любая помощь очень ценится, я полностью застрял. Спасибо!

1 Ответ

0 голосов
/ 24 января 2020

Самый простой способ получить ссылки напрямую:

operations = wait.until(
    EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'table.StandardGrid a[onmouseover*="Go To Detail Form"]')))

for operations in operations:
    print(operations.text, operations.get_attribute['href'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...