初心者のWEBデザイン

HTML,CSS、その他WEBデザインに関する事を記述していきます。

Selenium メソット一覧

タイトル表示
driver.title
ページ遷移
driver.("URL")
ページのソースを取得
driver.page_source
ウインドウを閉じたいとき
driver.close()
ブラウザを終了したい場合
driver.quit()

object対象のオブジェクト化済み

テキストを取得したいとき
object.text
属性を取得したいとき
object.get_attribute("value")
要素が有効かどうかを判定したいとき
object.is_enabled()
要素が選択されているかどうかを判定したいとき
object.is_selected()

Python Selenium 自動入力 手順 健忘録

忘れるのでメモ書き。
これを参考にあれやこれややれば解決できるはず。

from selenium import webdriver
URL = "対象URL"
# 取得したURLをseleniumでインスタンス化
foxDriver = webdriver.Firefox()
chromeDriver = webdriver.Chrome()
safariDriver = webdriver.Safari()


id = driver.find_element_by_id("id項目の要素")
id.send_keys("アカウントID")

pass = driver.find_element_by_id("pass項目の要素")
pass.send_keys("アカウントPASS")

# Submitボタンをクリックする
login_button = driver.find_element_by_name("Submitボタンの要素")
login_button.click()


# サイト内で他の画面に遷移したい場合
driver.get('対象URL')
検索はDOMで取得可能
  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector


find_element_by_id以外は検索対象が複数ある際は
リストで返します。

公開鍵暗号 RSA方式 デジタル署名 実践

GNUが提供してるgpgでコマンドで簡単に実験できます。

鍵の生成
gpg --gen-key
鍵の生成
gpg --gen-key
公開鍵の表示
gpg --export -armor "bellsmarket"

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQENBF2MmjYBCAC/111Z67eGApWWqie9u0gOTMjJ3HM7J68fDIN4+g1W8HoL/019


(中略)


=9n7d
-----END PGP PUBLIC KEY BLOCK-----
任意のメッセージ作成し署名する。> 署名をおさめたファイルの確認
echo "cat is animals." > signature.txt
gpg -b -a signature.txt

cat signature.txt.asc
署名の検証
gpg --verify signature.txt.asc signature.txt

C言語 return 0 1 真偽値について

C言語の戻り値の0は偽なのに正常終了って逆だと思ってました。

その前提が間違っていました。

関数の戻り値はBooleanとは無関係でただの「整数」

下記のC言語の大原則は揺るぎませんが、戻り値はこれには当てはまりません。

0 偽(false)
0以外 真(true)

0 = 正常終了
非0=それ以外


と定義する。そうするとShell Script側で都合が良い、
という昔の先人たちの解釈だそうな。
これはUNIX系OSで生まれた慣習・文化らしいです。


0 = True = 正常終了
ではなく
0=正常終了を表す終了コード
1=○○のエラーを表す終了コード
2=○○のエラーを表す終了コード
3=○○のエラーを…..

また1970年代のpdp11などでは、正常終了コードは1種類しかなく、
それに反して異常終了はやたらとたくさんあった背景もあるそうです。

Java Script DOMについて 健忘録

DOM = Document Object Model

Objectの集合(tree構造)がHTMLやXMLのDocumentであると考える。
ObjectをNodeと呼ぶ。

DOMはNodeを操作(追加・削除・置換・抽出)をする為のAPIである

要素の集合

両方とも要素の集合

  • NodeList = Static
  • HTMLCollection Object = Dynamic(DOMを操作した場合値が変わることがある)

DOMを操作する場合には、文書ツリーから要素Nodeを取得するところから全ては始まる

戻り値 HTMLElement
document.getElementById()
document.querySelector()
戻り値 HTMLCollection
document.getElementsByTagName()
document.getElementsByClassName()
戻り値 NodeList
document.getElementsByName()
document.querySelectorAll()


document.querySelectorAll()で操作する要素を取得した後
ノードウォーキングで相対的に周りの要素を操作すると効率が良い
そのためには、取得する要素をよく考えてdocument.querySelectorAll()
を使わないとオーバーヘッドが高くなる。


イベントドリブンモデル(イベント駆動型モデル)

イベントをトリガーにして処理を実行すること

イベントに対応して処理内容を定義するコードのかたまり(function)

操作の基本は下記である

  • どの要素で
  • どのイベントを
  • どのように処理するか(関連ずけるか)

1. タグ内の属性として宣言
2. Elementオブジェクトのプロパティとして宣言
3. addEventListenerメソッドを使用して宣言

1.はHTMLタグ内にスクリプトを記述するので好ましくない。
レイアウト定義のHTMLの中にJSを混在させることがよくない

document.addEventListener

jQueryでいう`$(document).ready(fucntion(){});`

document.addEventListener('DOMContentLoaded' ,function() {
  //処理したい内容
},false);

attributesプロパティ

対象とするElementノードの全てのattrリストをNamedNodeMapオブジェクトとして返す
属性値やテキストを取得・設定する

NamedNodeMapオブジェクト

個別のノード名・indexのいずれかでアクセス可
配下ノードの操作が(追加・削除・置換・抽出)

イベントオブジェクト

イベントハンドラー or イベントリスナーにおいて実行される関数のArgumentとして受け取ることのできるオブジェクトです。オブジェクトから、発生したイベントに関わる様々な情報(プロパティ)を知ることができ、またそのイベントを制御するメソッドを活用することができます。

//イベントfuncが起きたElement〇〇の属性値を取得しtestに入れる
function(e) {
}
var test = e.target.getAttribute('〇〇')

JSからのCSS操作

StyleプロパティでのCSS操作は、スタイル定義とスクリプトの混在に繋がるので使用するのは好ましくない。

classNameプロパティを使用する
or
classListプロパティを使用する(IE10以降のため注意)

  • classNameプロパティ

- mouseover・mouseout 各々のイベントにthis.classNameを追加・削除してCSSをコントロールする

  • classNameプロパティ

クリックごとにID’test’をオンオフが出来る

document.addEventListener('DOMContentLoaded' ,function() {
  var test = document.getElementByID('test');

  elem.addEventListener('click' ,function() {
    this.classList.toggle('test');
},false);

Atom JavaScript 自動補完パッケージ ternjs

凄く便利。。。!

公式パッケージサイト
atom.io

JSを管理するディレクトリに.tern-projectを作成しましょう〜
Libsの配列の中に補完したい項目を記述して保存すれば
自動で補完されます。

補完される項目がElemなのかHTMLCollectionなのか・NodeListなのかも
表示されるくらい親切です。

素晴らしいの一言。。

Linux ディレクトリ構成 簡略図

Linux ディレクトリ一覧

|--- bin (Binary):一般ユーザーでも実行可能な基本的なコマンドがある。コマンドのバイナリファイルを表す。
|
|--- sbin (System Binary):rootユーザーのみが実行可能なシステム管理コマンドがある。
|
|--- etc (Et Cetera):システムやコマンドの各種設定ファイル、スクリプトファイルがある
|
|--- dev(Device):ハードディスク、CD-ROM、DVD-ROMなどのデバイスファイルがある
|
|--- lib (Library):共有ライブラリやカーネルモジュールがある
|
|--- mnt (Mount):CD-ROMなどのファイルシステムの一時的なマウントポイント
|
|--- opt (Option):追加パッケージや追加プログラムがインストールされる
|
|--- proc (Process File):カーネル内部の情報にアクセスするための仮想ファイルシステム
|
|--- root rootユーザー専用のディレクトリ
|
|--- boot システム起動に必要なカーネルイメージや設定ファイルがある
|
|--- home 一般ユーザーごとのホームディレクトリ
|
|--- tmp (Temporary):一時的に使用する作業用ファイルがある
|
|--- var (Variable):ログファイル、各種のスプールなど、頻繁に更新されるファイルで、変わりうる情報を扱う
|
|--- usr:一般ユーザーが共有するコマンド、ライブラリ、ドキュメントなどがある
|
|--- lost+found:破損したファイルがある
|