Python + Selenium:帮助查找替代find_element_by

时间:2018-08-19 20:06:24

标签: python selenium selenium-webdriver

我需要一点帮助来找到调用此元素的替代方法。 我使用169.254.169.123,假设最后7个数字是我的学生ntpd分配从D2L分配的数字,结果却不是。我不知道这个数字是怎么产生的。

如果我可以通过其他方式致电此商品?也许使用标题?

chrony

对不起,我无法发布页面链接,该链接受密码保护,并且在法律上无法透露学生姓名。原为find_element_by_id。我不能使用的原因是,最后一组数字(125630)似乎是个人的ID代码,但我无法访问这些代码的清单。

我希望单击最右边的那支小铅笔,其名称中的代码是:

ORGID

我的代码:

<a class="d2l-imagelink" id="ICN_Feedback_3400653_125401" 
href="javascript:void(0);" onclick="return false;" title="Enter comments for 
FIRSTNAME LASTNAME in a new window" aria-label="Enter comments for FIRSTNAME 
LASTNAME in a new window" role="button"><d2l-icon icon="d2l-tier1:edit" 
class="x-scope d2l-     icon-0">

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

link = driver.find_elements_by_css_selector(".d2l-imagelink[role='button']")

或者最好添加显式等待:

link = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".d2l-imagelink[role='button']")))

希望对您有帮助!

答案 1 :(得分:1)

通过xpath和标题:

driver.get_element_by_xpath("//a[@title='Enter comments for FIRSTNAME LASTNAME in a new window']")

要消除文本中的空白:

driver.get_element_by_xpath("//a[normalize-space(@title)='Enter comments for FIRSTNAME LASTNAME in a new window']")

driver.get_element_by_xpath("//a[contains(@title,'FIRSTNAME LASTNAME') and @class='d2l-imagelink']")

driver.get_element_by_xpath("//a[contains(@title,'FIRSTNAME LASTNAME') and @role='button']")

driver.get_element_by_xpath("//a[contains(@title,'FIRSTNAME LASTNAME') and @class='d2l-imagelink' and @role='button']")

driver.get_element_by_xpath("//a[contains(@title,'FIRSTNAME') and contains(@title,'LASTNAME') and @class='d2l-imagelink'")

以此类推