python - 为什么硒不单击python中的按钮?
问题描述
我正在为按钮本身使用 xpath 选择器,selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="ember1355"]/button"}
当我尝试单击时,selenium 给了我一个错误。我想做的是使用 selenium 与linkedin中的人联系。当我搜索特定术语时,我想提取所有显示“连接”的配置文件并单击每个按钮。html是
<div class="search-result__actions">
<div id="ember3093" class="ember-view">
<button aria-label="Connect with Persons name" class="search-result__actions--primary button-secondary-medium m5" data-control-name="srp_profile_actions" data-ember-action="" data-ember-action-3096="3096">Connect</button>
<div id="ember3099" class="ember-view"><div id="ember3100" class="ember-view"><!----></div></div>
</div>
</div>
我的代码是:
if each.find('div', class_='search-result__actions').find('div').text.strip() == "Connect":
id = each.find('div', class_='search-result__actions').find('div')['id']
id = '//*[@id="'+id+'"]'
print(id)
#this is where the code isn't working
driver.find_element_by_xpath('//*[@id="ember1355"]/button').click()
解决方案
尽量避免使用Xpath
尝试使用css_selector:
# Finds the right css selector
button = driver.find_element_by_css_selector('.search-result__actions--primary')
# Clicks the button
driver.execute_script("arguments[0].click();", button)