Я пишу скрипт, который должен щелкнуть по элементу страницы, однако CSS-селектор меняется каждый день, когда элемент меняет свое местоположение.
Сегодня он называется:
PPTAmFCTable > tbody:nth-child(1) > tr:nth-child(11) > td:nth-child(3) > a:nth-child(1)
Вчера это было:
PPTAmFCTable > tbody:nth-child(1) > tr:nth-child(10) > td:nth-child(3) > a:nth-child(1)
А завтра это может быть tr:nth-child(13)
или около того.
Я использую следующий код:
def click_element_bycss(browser,css,timeout):
element_present = EC.presence_of_element_located((By.CSS_SELECTOR,css))
WebDriverWait(browser, timeout).until(element_present)
browser.find_element_by_css_selector(css).click()
, а затем:
click_element_bycss(browser,"#PPTAmFCTable > tbody:nth-child(1) > tr:nth-child(11) > td:nth-child(3) > a:nth-child(1)",4)
Как мне написать код так, чтобы я щелкнул по правому элементу, не зная числа во втором tr: nth-child ()?
ЭлементHTML:
<a href="/FC1/ItemList;jsessionid=E6B3D538CD809FDDC3DE69EA160C956D?WorkPool=PickingNotYetPicked&ExSDRange.RangeEndMillis=1556850660000&ProcessPath=PPTAmFC&ExSDRange.RangeStartMillis=1556850599999&shipmentType=TRANSSHIPMENTS">261</a>
Мысль о цикле, который просто проходит для i в диапазоне (1,20): tr: nth-child (i), но ожидал бы, что что-то умнее.