【发布时间】:2020-03-09 11:20:50
【问题描述】:
我确信这可能以前被问过,但我还没有遇到过。如果它已经在这里,我很抱歉。但是,我在试图弄清楚逻辑时遇到了问题:该页面以我希望单击的元素列表(开始 20 个)开始。滚动后,会显示更多相同的元素。我在滚动后与加载的元素进行交互时遇到问题。到目前为止,这是我想出的:
def clix():
chazz = driver.find_elements_by_css_selector("button[class^='message-anywhere']")
for x in chazz:
if x.is_displayed():
x.click()
time.sleep(1)
driver.find_element_by_css_selector("button[data-control-name^='overlay.close']").click()
time.sleep(2)
scrollz()
def scrollz():
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
time.sleep(4)
clix()
clix()
我知道这并不是应有的“pythonic”或“最佳实践”。我只是担心功能。任何见解将不胜感激。
driver.find_element_by_css_selector("button[data-control-name^='overlay.close']").click() 按钮仅用于弹出一个窗口。
谢谢
html:
<button class="message-anywhere-button artdeco-button artdeco-button--secondary artdeco-button--2" aria-label="Send message to Abarna Rajkumar" data-ember-action="" data-ember-action-63="63">
Chat
</button>
【问题讨论】:
-
您能否为您尝试自动化的页面发布一些 HTML,包括您在此测试中定位的元素?这将帮助任何试图回答您的问题的人更有效地解决您的问题。
-
我添加了按钮的html。识别按钮不是问题。一旦加载了更多元素,脚本就会迷失在索引中的位置,我不知道如何为此编写逻辑。
标签: python selenium loops dynamic